我创建了一个文件a.txt。
因此,在 master 分支中,现在 a.txt 文件具有文本“m1 m2 m3”
在功能分支中,a.txt 文件具有文本“m1 m2 f1”
git rebase master
并且像往常一样遇到合并冲突。git add a.txt
和 git rebase --continue
它立即显示我输入一条新的提交消息,然后我输入了一条提交消息。git branch
并发现如下* (no branch, rebasing feature)
feature
master
然后我又跑了
git rebase --continue
它向我展示了
a.txt: needs merge
You must edit all merge conflicts and then
mark them as resolved using git add
编辑:我又发现了一些更多的冲突。我必须解决这些问题,然后运行
git add
和 git rebase --continue
。这是一个非常漫长的过程。谁能解释一下为什么我必须两次解决冲突?
我的目标是从功能分支重新建立 master 基础。最后从主分支重新调整功能分支。
当我按照你说的去做时,你所描述的事情并没有发生。
testit () {
( set -x;
git init `mktemp -d`; cd $_
echo m1 >file.txt; git add .; git commit -mm1
echo m2 >>file.txt; git commit -amm2
git checkout -b feature
echo f1 >>file.txt; git commit -amf1
git checkout master
echo m3 >>file.txt; git commit -amm3
git rebase master feature
vi file.txt
git add .
git rebase --continue
)
}
并且继续会产生成功的变基。
我按照上述步骤顺序进行操作,没有创建任何中间分支,并且变基在
feature
分支以及 master
上按预期工作。
下面提到的一些建议可以帮助确保干净的变基:
一旦发生冲突,请在开始编辑
git reset .
之前执行a.txt
(按照git的建议)。最后执行git add .
或git add a.txt
。
解决冲突时,请确保删除所有git冲突标记字符
(<<< === >>>)
,如下所示:
之前
<<<<<<< HEAD
m1 m2 m3
=======
m1 m2 f1
>>>>>>> f1
之后
m1 m2 m3 f1