我创建了一个文件 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。最后从 master 分支 rebase 功能分支。
答案 0 :(得分:1)
我遵循了您提到的整个步骤序列,没有创建任何中间分支,并且 rebase 在功能分支和 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
答案 1 :(得分:0)
当我按照你说的做时,你描述的不会发生。
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
)
}
并且 continue 产生了成功的变基。