挑剔和重垒后可以合并吗?

问题描述 投票:4回答:1

能否在第4步合并而不发生冲突?

  1. 把分支1的提交'E'从分支1合并到分支2。

     branch1 : A - B - C - D - E
                     \
     branch2 :         F - G - E(cherry-pick from 1)
    
  2. 提交的内容被添加到 branch2

     branch1 : A - B - C - D - E
                    \
     branch2 :         F - G - E - H - I
    
  3. 重构交互式和压制提交,因为它们是同一个问题的解决方案。

    (现在,我认为这是一个错误的决定......)

     branch1 : A - B - C - D - E
                    \
     branch2 :        F - G - I'
    
  4. 再把被压扁的提交挑到分支1......

    (如果把提交的H,I挑到分支1会不会更好?)

     branch1 : A - B - C - D - E - I'(conflict?)
                     \
     branch2 :         F - G - I'
    
git git-merge git-rebase git-cherry-pick git-merge-conflict
1个回答
1
投票

这是一个有趣的问题,但除非你提供实际的 git 仓库,以便检查变化集,否则没有人能够提供明确的答案。

事实上,合并冲突与提交 H 和 I 是被单独挑选出来的,还是被一起重构的无关。事实上,E 也被压扁了 可能 是一个因素。

不过更重要的是,这个问题的前提有一个小问题。"是否可以将 畅通?" 为什么这个合并要在没有冲突的情况下进行?有冲突可能是正确的,也是合适的。

当git说 "有冲突 "时,并不意味着 "你搞砸了,这些不能合并"。而是意味着 "我(git)搞不清楚这些改动应该如何合并。我需要人类的帮助。"

这里有一个解决方案:找一些好的diffmerge软件(我在Windows上使用P4Merge,但有很多选择)。检查每一个相关提交的内容。了解冲突是什么(很可能是H或我修改了E中的一行,也可能是H和我依赖于F或G中已经做出的修改)。解决每一个冲突:这可能意味着保留原来的行,或者保留较新的行,或者以一种新的方式修改行,将两个分支的变化都纳入其中--这完全取决于上下文。

不要害怕与团队成员协商解决冲突--你有可能会决定他们的一些工作是否会被删除。

© www.soinside.com 2019 - 2024. All rights reserved.