2012-01-25 48 views

回答

2

警告:這裏的每一步都是破壞性的。不要誤會,並在開始之前拿回你的回購副本。

git reset --hard $what,那裏什麼是SHA或任何你想回到那個分支。 (例如:HEAD^,如果你只是想放棄最新的提交。)

一旦你完成了這一步,git push --force ...把它拿到遠程倉庫。

解決了一切......除了從遠程存儲庫中刪除死斑等。如果這對你很重要,生活就會變得更加艱難。沒有任何協議的方式來擺脫它,所以你要麼刪除遠程回購,並創建一個新的乾淨的副本,或做一些特定的後端。

+0

還要注意,'git push --force'通常意味着如果其他人與你一起工作並且已經提交了你的提交,他們也必須在他們的最後做一堆恢復。 – Amber

+0

謝謝,效果很好。沒有回購只是我的,這是一個流感初始化項目,在這個過程的早期,所以沒有任何損失。 ThanksQ – fancy

3

雖然Danial Pittman爲您提供了「擦除」您所採取行動的過程,但我還是會建議採用其他方法。如果可能的話,你最好修改你所做的修改,然後提交那些基本上覆蓋了前一個提交的修改。是的,人們仍然可以查看回購歷史並可能看到「錯誤」,但這是一種更安全的方法。此外,如果您確實想要進行更改,那麼在執行此方法時,它們仍將存儲在存儲庫中。希望有所幫助!

+2

如果提交包含密碼等敏感信息,則這不起作用。這是我對他的願望的解釋,不是爲了解決所做的事情,而是爲了讓事情從未發生過。 – johnny

+0

@johnny確切 – fancy

+1

我明白了,我只是想確保其他查看這個問題的人知道他們的選擇。 – jbranchaud