我有两个分支,有两个功能:banch_1
和branch_2
。
branch_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
没有提交。
我做错了什么?
答案 0 :(得分:20)
如果我理解正确,当您收到合并冲突时,您接受来自branch_1
的所有更改,这意味着来自branch_2
的特定提交无关紧要 - 该提交中的任何更改与来自branch_1
的传入更改相同。
当git说
时没有变化 - 您是否忘记使用'git add'?
它告诉您,您尝试申请的提交不会对回购进行任何更改,因此没有理由让它存在。
对此的简单解决方案是git rebase --skip
,它只是说“忽略此提交并继续前进”,如@ C-Otto的评论所示。这将跳过您当前正在处理的提交,然后转到后续提交。
您可能还会发现使用交互式变基(git rebase -i
)更容易,首先会向您提供它将应用的提交列表,并为您提供有关如何处理每个提交的各种选项。在这种情况下,如果您确定一个不再相关的提交,您可以预先跳过它,这样您就不会在第一时间看到冲突。