问题描述
我有两个兄弟分支(来自master分支),在将两个分支与master分支合并时遇到冲突。 我必须将它们与解决冲突合并(或合并冲突修复提交)。
主提交1.初始化 branch1提交为1. init(继承自master)2. commit1 branch2的提交是1. init(继承自master)2. commit2
在主分支上使用git merge branch1
时。它工作正常,但随后在运行git merge branch2
后出现冲突。我需要使用git rebase将branch2
合并到master而不需要添加更多提交的帮助
解决方法
o---o---o branch1
/
o---o---o---o---o---o---o master
\
o---o---o---o---o branch2
从主分支首先合并分支1:
git merge branch1
o---o---o branch1
/ \
o---o---o---o---o---o---o---o master
\
o---o---o---o---o branch2
然后将branch2重新设置为主节点:
git rebase master branch2
您会遇到一些冲突:
First,rewinding head to replay your work on top of it...
Applying: branch2
Using index info to reconstruct a base tree...
M fileXXX
Falling back to patching base and 3-way merge...
CONFLICT (content): Merge conflict in fileXXX
Resolve all conflicts manually,mark them as resolved with
"git add/rm <conflicted_files>",then run "git rebase --continue".
You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase",run "git rebase --abort".
编辑每个冲突文件以修复冲突,然后
git add fileXXX
和
git rebase --continue
您现在有branch2基于主服务器了
o---o---o branch1
/ \
o---o---o---o---o---o---o---o master
\
o'--o'--o'--o'--o' branch2
现在将branch2合并为master
git checkout master
git merge branch2
o---o---o branch1
/ \
o---o---o---o---o---o---o---o---o'--o'--o'--o'--o' master