2011-08-01 149 views
10

我在工作站中擁有一個遠程git存儲庫的簽出副本。 我不小心在我的本地進行了更改,並推送到遠程。 現在我想刪除最後一次提交併返回到前一次提交,同樣應該推送到遠程。如何在git中恢復到以前的版本

我沒關係,如果它是一個提交消息的新提交。怎麼做?

回答

10

我建議不要使用-force替代歷史記錄。 任何已經完成修改的人都會有一個完全搞砸的歷史來處理新東西的時候。

一個更安全的選擇是簡單地做

git revert HEAD~1 
git push origin master 

git revert將錄製新提交的是取消所有的以前的一個

的影響
9

如果還沒有人克隆了更新後的遠程回購,您可以:

git reset --hard HEAD~ 
git push --force 

這將迫使本地和遠程歷史拋棄的最新承諾。
(首先檢查了Git的獲取沒有新的提交已被推因爲你的不正確提交)

如果一個新的歷史,是不是一種選擇,那麼git revert更安全,並會導致一個新的提交取消前一個:然後您可以推送新的提交。