2013-08-01 94 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会更容易。谢谢! –