我正在尝试将跟踪供应商分支的旧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中已存在的“冲突”文件。我知道文件存在,我希望它合并那些文件。
任何建议都将受到赞赏。
答案 0 :(得分:2)
诀窍是使用子树选项进行正常的递归合并:
git merge -s recursive -Xsubtree=dir2 upstream/master