我试图利用git中的子树功能,使一个repo引用另一个repo,从而看起来拥有两个repo的所有文件。我已经阅读了一些介绍,如这里和这里,并尝试跟着做。
所以我在git hub上有两个repo。我执行以下操作:
所以我在git hub上有两个repo。我执行以下操作:
git checkout testBranchA
git pull origin testBranchA
git remote add external git@github.com:reharik/repoB
git fetch external
git checkout -b external external/testBranchB
git read-tree --prefix=src/ -u external
git commit -m "added subtree"
现在我查看我的文件系统,发现两个仓库的所有文件都在那里,一切都很完美。然后我执行
git pull -s subtree external testBranchB
看起来两个本地仓库中的所有内容都被删除了。实际上,首先执行以下步骤:
removing src/...
在所有文件上运行后,它似乎进行合并,在此过程中您可以看到所有文件都有红色和绿色的加号和减号,然后它会执行
delete mode 100644 src/...
对于所有文件
我不确定我做错了什么,但显然是有问题的。
任何帮助都将不胜感激。
=== 编辑很抱歉一直更改命令,我的头有点晕了,但我想这就是我使用的语法
git subtree add
)时,我忘记使用--prefix
选项了。它应该像git subtree pull
那样警告我,但实际上没有。一旦我在add
时重新使用正确的--prefix
,后续的pull
就正常工作了。 - KFL