`Git merge-X之后的Git-rebase冲突`
我在分支`Git merge-X之后的Git-rebase冲突`,git,github,merge,Git,Github,Merge,我在分支foo上,我想将development合并到我的功能分支foo。我希望自动解决所有冲突,并自动重写分支foo中的任何代码。从分支foo,我做了git merge-X他们的开发,这是可行的。当进行两次双重检查时,我得到的已经是最新的 但是当我git-rebase-develope以确保foo被捕获时,我会遇到合并冲突。为什么在git merge-X他们的develope合并应该有分支foo上所有更新的develope代码时会出现这种情况?重新基础和合并做了非常不同的事情 当您运行git m
foo
上,我想将development
合并到我的功能分支foo
。我希望自动解决所有冲突,并自动重写分支foo
中的任何代码。从分支foo
,我做了git merge-X他们的开发
,这是可行的。当进行两次双重检查时,我得到的已经是最新的
但是当我
git-rebase-develope
以确保foo
被捕获时,我会遇到合并冲突。为什么在git merge-X他们的develope
合并应该有分支foo
上所有更新的develope
代码时会出现这种情况?重新基础和合并做了非常不同的事情
当您运行git merge develope
时,您告诉git:
HEAD
)。这有一些散列ID开发
。这有一些散列ID...--o--B--o--1 <-- somebranch (HEAD)
\
o--o--2 <-- develop
git merge
,git会找到M
和2
,找到它们的合并基(这次不是B
,而是2
),并声明无需执行任何操作:合并基已经是两个提交之一
运行git-rebase-develope
时,您告诉git:
M
,在此合并完成后),以及通过develope
(提交2)标识的提交无法访问的所有提交:
somebranch
标签从现在的位置移除,并将其放置在复制提交的末尾:
...--o--B--o--1---M [abandoned]
\ /
o--o--2 <-- develop
\
o'--1' <-- somebranch (HEAD)
…--o--B--o--1--M[废弃]
\ /
o--o--2重新设置基址和合并可以做非常不同的事情
当您运行git merge develope
时,您告诉git:
识别当前提交(HEAD
)。这有一些散列ID
确定另一个提交,开发
。这有一些散列ID
跟踪提交图以查找步骤1和2中标识的两个提交中最低的公共祖先合并基提交:
...--o--B--o--1 <-- somebranch (HEAD)
\
o--o--2 <-- develop
如果现在再次运行相同的git merge
,git会找到M
和2
,找到它们的合并基(这次不是B
,而是2
),并声明无需执行任何操作:合并基已经是两个提交之一
运行git-rebase-develope
时,您告诉git:
列出当前分支提示中可访问的所有提交(M
,在此合并完成后),以及通过develope
(提交2)标识的提交无法访问的所有提交:
成功创建所有副本(包括解决任何合并冲突)后,将somebranch
标签从现在的位置移除,并将其放置在复制提交的末尾:
...--o--B--o--1---M [abandoned]
\ /
o--o--2 <-- develop
\
o'--1' <-- somebranch (HEAD)
…--o--B--o--1--M[废弃]
\ /
o--o--2如果您已经将develope
合并到foo
,那么后续执行git-rebase-develope
“以确保foo
被赶上”毫无意义。进行这种合并的全部意义在于它捕获了foo
。如果您已经将develope
合并到foo
,那么后续执行git-rebase-develope
“确保foo
被捕获”是没有意义的。这样一个合并的全部意义在于它捕获了foo
。明确指出复制重基本身就是一个合并,使用重基提交的父级作为合并基,重基提交作为“他们的”提示,新基作为“我们的”提示,这会有帮助吗?@jthill:可能。。。我有时会对过长的答案感到有些抵触,所以我想知道:-)明确指出复制重基本身就是一个合并,使用重基提交的父级作为合并基,重基提交作为“他们的”提示,新基作为“我们的”提示,这会有帮助吗?@jthill:可能。。。我有时会对过长的答案感到有些抵触,所以我想:-)
...--o--B--o--1---M [abandoned]
\ /
o--o--2 <-- develop
\
o'--1' <-- somebranch (HEAD)