当有人从我的git提交中挑选出来并做出自己的提交时,我该如何合并?

假设我分叉某人的git repo并提交A,B,C和D.我从那里分叉的那个人挑选A和C,因此成为A'和C'。他还提出了自己的X,Y和Z.所以在这之后,我的分支有A B C D,并且他有A'C'X Y Z.假设两个分支都已发布,因此rebase不是一个有吸引力的选择。还假设X Y Z与A B C D中的任何一个都不冲突。如何以有用的方式合并这两个分支?我应该简单地合并,然后手动解决所有问题?在合并头的日志中,我可以做些什么来重复提交消息吗?这两个分支注定只能通过从现在开始挑选彼此的提交来同步吗?     
已邀请:
直接合并应该有效。 Git应该注意到相同的更改集,并且不会尝试合并A / A'或C / C'。如果X,Y或Z触及A'/ C'改变的相同代码,则可能必须解决那里的冲突,特别是如果B或D触及相同的代码。 您可以随时
git merge --no-commit
并检查结果,看看它是否符合您的预期。     
如果没有冲突,直接合并是显而易见的。如果有冲突...... 你可以先合并他的C',这个阶段的任何冲突都来自重新应用你自己的更改,如果它们是非平凡的,或者因为它们的应用有点乱序。如果你的C在B上积累并且他的C'不是一个干净的副本,或者如果B C D中的任何一个在A上积累那么重新应用他的A'不再是明显的无操作等等,就会发生这种情况。 您可以跳过详细的冲突调查,只需手动或接受您的版本:
git merge --strategy=ours C'
然后合并其余部分,更加关注那里的冲突。如果他的X Y Z确实不接触A B C D的东西,这应该没有冲突。如果他在将C'合并为C'时做了一些奇怪或错误的事情,并且在合并C'时将其丢弃,那么它可以回来并在此处或将来的任何时间咬你。     

要回复问题请先登录注册