2012-11-23 107 views
0

剛剛提出了一個我想要反轉的更改,回滾一個提交的最快方法是什麼?重置爲以前的提交.git

+0

可能重複的[GIT恢復到以前的提交...如何?](http://stackoverflow.com/questions/4114095/git-revert-to-previous-commit-how) –

回答

1
git reset --hard HEAD^ 

HEAD^的意思是「一個頭前」,因此等於HEAD~1和手段,扔掉最近提交包括所有的變化。如果您只想銷燬提交但保留文件已更改,請移除--hard開關。

如果您打算將更新的分支推回到包含提交的遠程,那麼最好不要使用git-reset,因爲它會修改歷史記錄。改爲使用git revert HEAD。這會創建一個新的提交,它將恢復給定提交的所有更改。

+0

這將重新發佈一個用戶誰拉了提交? – David

+0

它只會影響你的本地存儲庫。人們不應該從那一個拉。但是,是的,它會修改歷史記錄,因此在刪除該提交後,您不應該將它推送到您從中提取的遠程位置。如果你打算這麼做的話,最好使用'git revert HEAD',它實際上會創建一個新的提交來解除舊的提交。 – ThiefMaster

+0

所以在這種情況下,這是由用戶推送,並拉到一個活的服務器。它會刪除提交(並恢復受到影響的文件),之前拉回提交狀態,對吧? – David