2014-12-03 91 views
1

我正在與我的同事一起工作feature-branch。我已經有幾天了,我有committed我的變化。如何在git pull之後回到之前的未配置狀態

昨天,他一直致力於他的變化和,改變了我們工作,但沒有傷害我的變化,項目的結構。

我已經退出這些變化並提出與mine.Upon測試提交後,我意識到它不工作,我希望它的樣子,所以我想回去的狀態拉之前。

我不能回到我以前的,因爲這樣做,我的最新更改將丟失提交。

我試圖git reflog這顯示此輸出:

08aed28 [email protected]{0}: commit: Added support for database 
4cf0fe8 [email protected]{1}: pull: Fast-forward 
d5e2930 [email protected]{2}: commit: Added logs 

我做git reset --hard [email protected]{1}但不會帶我到以前的狀態。

我該怎麼辦?

+1

你可以回到你的老犯,最好創建一個分支,而[摘櫻桃(http://git-scm.com/docs/git-cherry-pick)您的「新」提交到新科。 – 2014-12-03 06:07:52

回答

0

要繼續在舊的更改工作承諾我會建議你使用下面的命令鏈 - 我假設你正在使用的命令行界面。

  1. 找到您想要的「開始」,從工作的提交(假設提交哈希123abc
  2. 創建它指向一個分支提交(我們稱之爲test) - git branch test 123abc
  3. 檢查新的分支出來 - git checkout test
  4. 使用git cherry-pick恢復你的新變化(您可以通過使用git checkout -b test 123abc結合這兩個步驟)

櫻桃採摘documentation

您可以使用cherry-pick到(引用文檔) 「應用通過一些現有的承諾實行的變革」。

在你的情況下,你現在可以簡單地使用類似於這個命令的命令:git cherry-pick 456def(其中456def是你想要應用更改的提交的哈希)。

如果您想要從主分支中選擇最新的3個提交,您的命令可能看起來像這樣git cherry-pick master~3..,這也可能是cherry-pick的一系列提交。

有關更多信息,請查看gitrevisions文檔或替代progit bookRevision Selection章節。

相關問題