我可以将一个子存储库放在另一个子存储库中,并全局更新子存储库吗?

Can I have one sub repository inside another, and update the sub repo globally?

假设我有一个工具,我制作的每个程序都使用它,有时我更新这个工具,我希望它在使用它的每个其他 repo 上更新。有办法实现吗?

我不是要求在另一个存储库中有一个存储库,我想问的是在其他几个存储库中有相同的存储库,并且能够以不同于 coping/pasting 原始文件夹的方式更新它们回购

如果可能,使用 Git + Sourcetree

谢谢!

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)以跟踪该更改。