我可以在另一个子仓库中有一个子仓库,并全局更新子仓库吗?

时间:2016-10-25 03:41:34

标签: git sourcetree

假设我有一个工具,我所使用的每个程序都使用它,有时我会更新这个工具,我希望它能在每个使用它的repo上更新。有没有办法实现这个目标?

我不是要求将一个存储库放在另一个存储库中,我要求在其他几个存储库中使用相同的存储库,并且能够以与复制/粘贴原始文件夹的存储库不同的方式更新它们。

如果使用Git + Sourcetree

可行

谢谢!

1 个答案:

答案 0 :(得分:1)

Submodule是实现此目的的好方法,提供您将该子模块设置为遵循其自己的master分支

cd /a/repo1
git submodule add -b master -- /url/to/repo/tool tool

(重复所有需要工具仓库的回购)

每次更新该工具仓库时,您在仓库中需要做的就是:

cd /a/repo1
git submodule update --remote
git add .
git commit -m "update tool"
git push

请记住,每次更改子模块时,都需要记录其 gitlink (父级回购的special entry in the index)以跟踪该更改。