2015-06-19 30 views
-1

我已將代碼簽入我的本地主git倉庫,然後將其推送至原點。只有1個這樣的錯誤簽入。在本地和遠程恢復上次提交的最佳方式是什麼?將代碼恢復到主機中的上一個提交

我寧願摧毀歷史。

+1

這取決於你是否想要摧毀歷史。 – SLaks

+0

是的,我寧願摧毀歷史 –

+0

可能重複[如何撤消上次提交?](http://stackoverflow.com/questions/927358/how-to-undo-the-last-commit) –

回答

3

如果肯定沒有人在做一個獲取/從回購拉,因爲你所做的承諾,做到:

git reset --hard HEAD~1 
git push -f 

如果有人已經取/拉高,但是,沒有太多的你可以沒有他們的合作。在那種情況下,你最好的選擇是做一個git revert HEAD,這將會做出一個額外的提交來解除你最後的提交。

2

您可以通過使用git rebase -i <any earlier commit>來重寫歷史記錄以刪除該提交。
如果這是最新的提交,您也可以運行git reset --hard HEAD^。您可以運行git push -f來重寫遠程歷史記錄。這將打破任何拉取該提交的人。

+0

您確定HEAD ^會刪除最後的提交嗎? –

+0

不是git push origin master -f? –

+0

@SachinKainth:'git reset'會重置本地分支以指向那個提交。 'HEAD ^'表示'HEAD'的直接父母。 – SLaks