Git - 错误地“合并”之后如何回滚

时间:2015-05-21 04:15:14

标签: git merge

我错误地将一个分支(a)合并到分支(b),现在a中的文件已被删除。

我没有分支a的任何标记,并且之前做了几次提交。

如何在合并之前回滚或返回舞台,以便我可以恢复文件?

我试过了:git reset --soft HEAD~3 似乎它不起作用。

1 个答案:

答案 0 :(得分:1)

你有:

A --- B --- C - branch_a
 \           \
  --D--- E ---F - branch_b 

branch_a已合并到branch_b,但branch_a的内容未更改。您可以执行git checkout branch_a,文件系统上的文件将与合并前branch_a上的文件一样。

如果branch_abranch_b(提交F)的合并错误,您可以将其回滚,并将branch_b设置为合并前的位置。 git reset是移动HEAD s(分支)的首选命令:

git checkout branch_b
git reset <SHA_1 of commit E> # --hard would update your local files as well, if you wish

导致:

A --- B --- C - branch_a
 \           
  --D--- E - branch_b 

提交F已经消失(你仍然可以找到它,至少在一段时间内,但这是更高级的。)