大文件移动后合并功能分支

时间:2019-04-10 21:26:40

标签: git git-merge

一开始,我的仓库看起来像这样:

master:
    foo/
    bar/
    new-bar/

在功能分支中,许多提交已添加到新栏中:

feature:
    foo/
    bar/
    -/

在master分支中,bar被删除,而new-bar用git mv移到了它的位置:

master:
    foo/
    b̶a̶r̶/
    bar/

我希望合并要素分支而不会引起大量冲突:

master:
    foo/
    b̶a̶r̶/
    /

我如何做到这一点?

2 个答案:

答案 0 :(得分:1)

来自Release-Notes for git 2.18

  
      
  • 在“合并”和“樱桃选择”中使用的重命名检测逻辑具有   学会猜测何时所有x / a,x / b和x / c都移到z / a,   z / b和z / c,同时添加的x / d也可能   想通过提示整个目录移到z / d   “ x”移至“ z”。
  •   

AFAICT涵盖了您的用例-仅使用现代的Git版本。

答案 1 :(得分:0)

如果您选择在master顶部重新建立功能分支,则重命名应该会进行得很好。有待尝试。重新设置完成后,您的分支应该与以前一样,除了所有更改将在bar/而非new-bar/中完成。

如果您决定不对其进行重新设置,则在功能分支的顶部,我将添加一个将new-bar/移为bar/的提交,以便与master兼容,然后合并它。

在任何情况下,您都必须尝试看看哪种更适合您的需求。