4

我正在尝试利用 git 中的子树功能,我可以在其中拥有一个引用另一个 repo 的 repo,因此似乎拥有两个 repos 的所有文件。我在这里这里阅读了一些介绍,并尝试关注它们。

所以我在 git hub 中有两个仓库。我这样做

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"

所以现在我查看我的文件系统,我看到了来自两个 repos 的所有文件,一切都很好。然后我做

git pull -s subtree external testBranchB 

似乎两个本地存储库中的所有内容都被删除了。事实上首先它确实

removing src/...

在所有文件上,然后它似乎进行了合并,您可以在其中看到所有带有红色和绿色 + 和 - 的文件,然后它确实

delete mode 100644 src/...

对于所有文件

所以我不确定我做错了什么,但很明显这是有问题的。

任何帮助,将不胜感激

=== 编辑抱歉,我一直在更改命令,此时我有点担心,但我认为这是我正在使用的语法

4

1 回答 1

0

最后一个git pull -s subtree ...命令似乎不正确,因为它没有考虑子树的位置。因为它会尝试在根级别将两棵树粉碎在一起,这可能是文件被删除的原因。

请尝试:

git pull -s recursive -X subtree=src/ external testBranchB
于 2013-02-26T03:37:33.607 回答