git merge:远程repo存在于子目录中

时间:2010-09-02 20:57:17

标签: git merge cvs subtree

我正在尝试将跟踪供应商分支的旧CVS存储库转换为git,并且我遇到了合并问题。

存储库的结构如下:

dir1/
dir2/

dir2来自上游分支。上游已经转换为git,而我们的repo中的dir2是他们的git repo的根。我想将它们添加为远程并将其根目录合并到子目录dir2中。

简单合并不起作用:git将root视为根,并且找不到共同的文件。

子树合并将不起作用:您无法将子树合并到现有目录中。我按照How to use the subtree merge strategy指南操作,此命令失败:

git read-tree --prefix=dir2/ -u upstream/master

问题在于它检测到dir2中已存在的“冲突”文件。我知道文件存在,我希望它合并那些文件。

任何建议都将受到赞赏。

1 个答案:

答案 0 :(得分:2)

诀窍是使用子树选项进行正常的递归合并:

git merge -s recursive -Xsubtree=dir2 upstream/master