在Git中回滚合并

时间:2012-04-23 23:14:08

标签: xcode git

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

我的更改再次被覆盖。所以现在我想回去合并。我尝试使用我从http://mac.github.com/下载的Github工具,点击最近的提交,然后回滚到该提交,但我的更改似乎仍然消失了。我没有看到历史上分支的合并。那是因为合并后我没有承诺吗?

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

2 个答案:

答案 0 :(得分:1)

我没有使用Xcode的版本控制GUI和Github工具。如果您知道进行了更改的提交的sha1,则可以在命令行执行此操作:

git reset --hard <the sha1>

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

答案 1 :(得分:0)

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

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