是否可以在 cherry-pick 和 rebase 之后合并?
Is it possible to merge after cherry-pick and rebase?
是否可以在第4步合并而不冲突?
cherry-pick commit 'E' 从 branch1 到 branch2
branch1 : A - B - C - D - E
\
branch2 : F - G - E(cherry-pick from 1)
提交已添加到 branch2
branch1 : A - B - C - D - E
\
branch2 : F - G - E - H - I
交互式变基并挤压提交,因为它们是同一问题的解决方案。
(现在,我认为这是个错误的决定...)
branch1 : A - B - C - D - E
\
branch2 : F - G - I'
Cherry-pick 压缩再次提交到 branch1...
(cherry-pick commit H, I 到 branch1 会更好吗?)
branch1 : A - B - C - D - E - I'(conflict?)
\
branch2 : F - G - I'
这是一个有趣的问题,但除非您提供实际的 git 存储库以便检查变更集,否则没有人能够提供明确的答案。
存在合并冲突的事实与提交 H 和 I 是单独挑选还是一起重新设置基准无关。 E 也被压扁的事实 可能 是一个因素。
不过,更重要的是,问题的前提是一个小问题。 "Is it possible to merge without conflict?" 为什么这个合并需要在没有冲突的情况下发生?有冲突大概是正确的和适当的。
当 git 说 "there's a conflict" 时,这并不意味着 "you messed up, these can't be merged.",而是 "I (git) can't figure out how these changes should be merged. I need human help."
解决方法:
获得一些好的 diff/merge 软件(我在 Windows 上使用 P4Merge,但有很多选择)。检查每个有问题的提交的内容。了解冲突是什么(很可能是 H 或 I 更改了在 E 中已更改的行,或者 H 和 I 取决于已经在 F 或 G 中进行的更改)。解决每个冲突:这可能意味着保留原始行,或保留较新的行,或以包含两个分支的更改的新方式修改行 - 这完全取决于上下文。
不要害怕与团队成员协商解决冲突 - 您很可能会决定是否要删除他们的某些工作。
是否可以在第4步合并而不冲突?
cherry-pick commit 'E' 从 branch1 到 branch2
branch1 : A - B - C - D - E \ branch2 : F - G - E(cherry-pick from 1)
提交已添加到 branch2
branch1 : A - B - C - D - E \ branch2 : F - G - E - H - I
交互式变基并挤压提交,因为它们是同一问题的解决方案。
(现在,我认为这是个错误的决定...)
branch1 : A - B - C - D - E \ branch2 : F - G - I'
Cherry-pick 压缩再次提交到 branch1...
(cherry-pick commit H, I 到 branch1 会更好吗?)
branch1 : A - B - C - D - E - I'(conflict?) \ branch2 : F - G - I'
这是一个有趣的问题,但除非您提供实际的 git 存储库以便检查变更集,否则没有人能够提供明确的答案。
存在合并冲突的事实与提交 H 和 I 是单独挑选还是一起重新设置基准无关。 E 也被压扁的事实 可能 是一个因素。
不过,更重要的是,问题的前提是一个小问题。 "Is it possible to merge without conflict?" 为什么这个合并需要在没有冲突的情况下发生?有冲突大概是正确的和适当的。
当 git 说 "there's a conflict" 时,这并不意味着 "you messed up, these can't be merged.",而是 "I (git) can't figure out how these changes should be merged. I need human help."
解决方法: 获得一些好的 diff/merge 软件(我在 Windows 上使用 P4Merge,但有很多选择)。检查每个有问题的提交的内容。了解冲突是什么(很可能是 H 或 I 更改了在 E 中已更改的行,或者 H 和 I 取决于已经在 F 或 G 中进行的更改)。解决每个冲突:这可能意味着保留原始行,或保留较新的行,或以包含两个分支的更改的新方式修改行 - 这完全取决于上下文。
不要害怕与团队成员协商解决冲突 - 您很可能会决定是否要删除他们的某些工作。