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