我在将开发分支的子树合并回集成分支时遇到了问题。
我有两个分支,一个用于开发,另一个用于集成。在开发分支上进行了大量开发工作,我想将其中的一部分合并回来。我要合并的特定部分都包含在开发分支的一个子树中。
我的目录结构如下:
[Branch A] [Branch B]
| |
+--Dir1 +--Dir1
+--Dir2 +--Dir2
| | |
+--DirA | +--DirA
| | |
+--File1 | +--File1
+--File2 | +--File2
| +--File3
| +--File4
+--Dir3
我希望将分支B/Dir2/DirA合并到分支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.
我尝试使用托管在Github上的子树脚本,但是我并没有取得太多进展。当我执行以下操作时:
git checkout Branch_A
git subtree merge -P Dir2/DirA Branch_B
我发现Dir3已经合并,但是合并失败了,有冲突。
我可以挑选文件进行合并,但这看起来过于复杂,对于一个常见而直接的问题来说不应该如此。