2012-04-23 66 views
0

我的同事在一个分支上,我在另一个分支上。当她将我的分支与我的分支合并时,我的更改没有进入。源代码文件在Xcode中是“M”(修改),而不是“C”(冲突),因此我们认为它是正确的。我回到我的分支,我看到我更改的代码仍然存在,我的代码工作正常。然后我们想再次尝试合并,但从我的桌面分支到我的分支。同样的事情出现在哪里的文件是“M”,没有“C”。在Git中回滚合并

我的更改再次被覆盖。所以现在我试图恢复合并。我尝试使用我从http://mac.github.com/下载的Github工具,方法是单击最近的提交,然后回滚到提交,但我的更改似乎没有了。我没有看到历史上的分支合并。那是因为我合并之后没有犯过吗?

如何在合并之前返回我的分支?

回答

1

我没有使用Xcode的版本控制GUI或Github工具。如果你知道的承诺其中有更改的SHA1,你可以在命令行里这么做:

git reset --hard <the sha1> 

这将重置当前分支是在你的提交。它也将重置工作树中的文件。小心。如果您有未提交的更改,它们将会丢失。

0

您可以重置最后的n个unpushed提交(提交但尚未推送)。然后你需要使用的命令是

git reset HEAD -- will omit the last commit 
git reset HEAD^n -- will omit the n number of last unpushed commits. 
+0

据我记得第一个必须是'git reset HEAD ^'(这只是'HEAD^1'的快捷方式)。使用'git reset HEAD',你会告诉git将分支头部设置为HEAD – KingCrunch 2012-04-24 08:59:11

+0

是的,我错过了。 – Mohanraj 2012-04-24 09:37:28