git rebase - 继续没有变化

时间:2015-12-10 14:30:49

标签: git git-rebase

我有两个分支,有两个功能:banch_1branch_2branch_2使用branch_1中的功能。 我已对branch_1进行了更改,并希望在branch_2上重新branch_1,以便将branch_1更改为branch_2

所以,我要查看branch_2:

git checkout branch_2

尝试在branch_1上进行重组:

git rebase branch_1

之后我得到了合并冲突'两个文件。所以我跑

git mergetool -t meld

并解决这些冲突,从branch_1中选择更改。

我正在保存文件并转到终端,输入 git status并且看到git索引没有变化。接下来我运行git rebase --continue并获取

No changes - did you forget to use 'git add'? 

错误。但没有什么可补充的! 我输入git log并查看branch_1的提交,但branch_2没有提交。

我做错了什么?

1 个答案:

答案 0 :(得分:20)

如果我理解正确,当您收到合并冲突时,您接受来自branch_1的所有更改,这意味着来自branch_2的特定提交无关紧要 - 该提交中的任何更改与来自branch_1的传入更改相同。

当git说

  

没有变化 - 您是否忘记使用'git add'?

它告诉您,您尝试申请的提交不会对回购进行任何更改,因此没有理由让它存在。

对此的简单解决方案是git rebase --skip,它只是说“忽略此提交并继续前进”,如@ C-Otto的评论所示。这将跳过您当前正在处理的提交,然后转到后续提交。

您可能还会发现使用交互式变基(git rebase -i)更容易,首先会向您提供它将应用的提交列表,并为您提供有关如何处理每个提交的各种选项。在这种情况下,如果您确定一个不再相关的提交,您可以预先跳过它,这样您就不会在第一时间看到冲突。