可能有点偏离主题,但仍然与问题相关
https://git-scm.com/book/en/v2/Git-Tools-Submodules
Git 子模块是 git 存储库,您可以在其他存储库中使用(以下称为超级模块)。由于每个子模块都具有通常的各种分支功能和标签,因此每个超级模块都是版本控制的、可插拔的组件,可以单独工作或与超级模块一起开发。
几个有用的命令
要添加子模块,请在超级模块中运行以下命令:
git submodule add <url-to-submodule-repo>
子模块仍然需要初始化并从 repo 中获取:
git submodule init
git submodule update
可以克隆带有子模块的超级模块,并通过运行获取所有子模块:
git clone --recursive <url-to-supermodule>
您可以通过在子模块目录中运行以下命令将上游更改拉到子模块的分支:
git fetch
然后运行以下命令更新本地代码:
git merge
以下内容将为您的超级模块中的所有子模块获取并合并:
git submodule update --remote
如果要跟踪子模块的特定分支,可以使用以下命令:
git config -f .gitmodules submodule.<my-submodule>.branch fantastic_new_implementation
如果您已经处理过您的超级模块和子模块并且您推送了您的超级模块,那么对子模块所做的更改将仅存在于本地,而您与之协作的人将不会知道这些更改。
以下命令将在尝试推送您的超级模块之前检查您的子模块是否已被推送
git push --recurse-submodules=check
最后,这是一个有用的 ForEach 命令,它允许我们为每个子模块运行一个命令
git submodule foreach 'git checkout -b featureA