我正在尝试利用git中的子树功能,我可以拥有一个引用其他repo的repo,因此似乎拥有两个repos的所有文件。我已经阅读了几个介绍here和here,并试图关注它们。
所以我在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/...
在所有文件上,然后它似乎进行合并,你看到所有文件用红色和绿色+'s和-s,然后呢
delete mode 100644 src/...
所有文件
所以我不确定我做错了什么,但显然这是件事。
任何帮助将不胜感激
===编辑抱歉继续更改命令,我现在有点油腻,但我认为这是我正在使用的语法
答案 0 :(得分:0)
最后git pull -s subtree ...
命令似乎不正确,因为它没有考虑子树的位置。因为它会尝试将两个树粉碎在根级别,这可能是文件被删除的原因。
尝试改为:
git pull -s recursive -X subtree=src/ external testBranchB