2013-08-01 91 views
0

我被給了一組更改。進行了更改,在本地進行了測試,想法我承諾並推動這些更改(這是昨天)。設計師今天向我詢問了他們,​​我檢查了他們沒有在製作過程中展示過,也沒有在我的工作機器上展示過。該分支已被刪除。恢復已刪除的git分支中丟失的更改

我是一個git新手,所以經過一番搜索後,我發現get reflog,並能夠找到包含所有更改的提交,並基於此檢出新分支。當我檢查分支時,我看到網站上的更改,當我切換回主分支時,更改消失 - 正是我期望的。

現在,我無法將這些更改合併爲主;當我嘗試合併時,git說它已經是最新的了。

爲了說明,我已經包括了一些屏幕截圖:

隨着我的 'uhoh' 分支:

enter image description here

而且主分支:

enter image description here

再次,而在分支主人,運行git merge uhoh它響應「已經最新」。顯然有一個區別,我只是不知道如何從uhoh掌握。

+2

也許uhoh已經被合併到master中,但後來又提交了uhoh中的一些更改?嘗試運行'git log --oneline --graph --decorate master uhoh',你應該能夠看到是否是這種情況。 – Ajedi32

+0

事實並非如此,但我喜歡你的命令給予我的輸出,我相信在未來它將會非常有用。而且,如果我在做所有采摘櫻桃之前擁有了它,它會讓我更清楚哪些是我需要關注的。 –

+1

很高興你發現它很有用。如果你發現自己使用了這個命令(比如我),你可以爲它創建一個別名:'git config --global alias.lg「log --oneline --graph --decorate」'。然後它只是'git lg'。 – Ajedi32

回答

0

你試過

git cherry-pick SHA1-of-commit 

您可以在master上運行cherry-pick,它將獲取特定提交併將其應用到當前分支。更多信息@ manpage

+0

這對於獲取所有這些變化非常有效。如果在櫻桃採摘之前看到Ajedi32的評論,那麼在該分支中查看所有提交的SHA會更容易。謝謝! –