2012-12-25 75 views
2

我對主分支做出的最後一個提交是我想讓所有內容都回到原來的位置。我做了一個分支並提交,甚至將它合併到主分支。但是,我合併該分支後,一切都出錯了。如何刪除分支並回滾到工作的主分支

我想完全刪除該分支並將所有事件恢復到最後一次主提交。我怎麼做?

PS:我沒有嘗試git branch -D [branch-name](效果很好,如果我不合併到主分支),但錯誤的文件,並顯示目錄仍處於主分支

回答

3

結帳主分支(git checkout master)。然後查看日誌(git log)並複製您想要返回的提交的SHA。

然後恢復爲與提交:

git reset --hard whatever_your_sha_is 

一個SHA的一個例子是f75b7ca5beb502e7f99434ea47e631bdd18fef13。如果您希望保留您作爲分階段更改所做的更改,並使用--mixed開關將它們保持爲未分離更改,則還可以使用--soft開關。

然後你可以刪除你的分支,如果你還想。

P.S. git reset命令非常有用,我已經寫了一篇關於它的博客文章here或者檢出任何着名的git網站,以獲取有關如何使用它的更多提示。

1

你應該申請:

git branch -D [branch-name] 
git checkout master 

你已經創建了一個新的分支,並在結賬後進行提交。所以你的主人沒有變化,並承諾你已經完成了。你可以簡單地刪除你創建的分支並簽出你的主分支
如果你已經提交了一些提交併且想要回滾。你可以做。

git reflog 

你選擇提交你想去的地方。例如:HEAD @ {25},然後在應用

git checkout master 
git reset --hard [email protected]{25} 
+1

*「reset --hard will restore branch master」* - 這不是真的正確。它會將* current *分支重置爲主分支的確切狀態,丟棄所有已完成的操作。 – poke

相關問題