小编Bre*_*dan的帖子

git:将子树从一个分支合并到另一个分支

我无法将开发分支的子树合并回集成分支.

我有两个分支,一个用于开发,一个用于集成.在开发分支中已经进行了广泛的开发,我想将其中的一部分合并回来.我想要合并的特定部分都包含在开发分支的一个子树中.

我的目录结构是这样的:

[Branch A]              [Branch B]
    |                       |
    +--Dir1                 +--Dir1
    +--Dir2                 +--Dir2
        |                   |   |
        +--DirA             |   +--DirA
            |               |       |
            +--File1        |       +--File1
            +--File2        |       +--File2
                            |       +--File3
                            |       +--File4
                            +--Dir3
Run Code Online (Sandbox Code Playgroud)

我想将Branch B/Dir2/DirA合并到Branch A/Dir2/DirA中.我希望合并File1和File2,并且应该在分支A中创建File3和File4.我不想选择Dir3或Dir1中的任何更改.

我已经尝试了kernel.org概述的步骤来合并子树,但是当我使用git read-tree时它们会失败:

error: Entry 'Dir1/DirA/File1' overlaps with 'Dir1/DirA/File1'.  Cannot bind.
Run Code Online (Sandbox Code Playgroud)

我已经尝试使用github上托管的子树脚本,但我没有太多运气.当我做:

git checkout Branch_A
git subtree merge -P Dir2/DirA Branch_B
Run Code Online (Sandbox Code Playgroud)

我看到证据表明Dir3已经合并,合并失败并伴随着冲突.

我可以挑选合并的文件,但这对于应该是一个普通和直接的问题似乎不必要地复杂化.

git branching-and-merging

12
推荐指数
1
解决办法
2498
查看次数

标签 统计

branching-and-merging ×1

git ×1