恢复git rebase的合并状态

时间:2018-01-20 16:55:56

标签: git merge rebase

我正处于git rebase的中间,其历史如下:

edit eac4848
join 84945e5
done ed60fdd
done 1c6399a

如您所见,提交1c6399aed60fdd已完成,git现在正尝试应用提交84945e5,但存在一些冲突。这是预期的,我只需要解决冲突并继续前进。

不幸的是,我打电话给git reset --hard,现在我的提交已经消失了:

edit eac4848
gone 84945e5
done ed60fdd
done 1c6399a

在初始合并冲突情况下,我应该使用什么命令来恢复工作目录?

我尝试调用以下命令:

$ git merge --squash --ff 84945e5

这种方法有效,但似乎合并没有考虑文件重命名。

2 个答案:

答案 0 :(得分:1)

答案隐藏在git rebase命令源代码(用shell编写)中。

下一次提交只需要使用以下命令进行挑选:

$ git cherry-pick <NEXT_COMMIT>

答案 1 :(得分:1)

你可以尝试

int percent = 10;

view.setBackgroundColor(getcolorPercentage((float)percent/10‌​0));

这将重复git cherry-pick 84945e5 已经造成合并冲突的问题。

如果所有其他方法都失败了,你会完全陷入困境,你可以重新开始

git rebase

现在为rebase重复相同的步骤,避免犯同样的错误。