我发现这个q / a:How can I have linked dependencies in a git repo?
关于如何将repo添加为子模块,但我不确定如何将特定版本添加为子模块。那可能吗?另一篇文章的解决方案是:
git submodule add git://github.com/example/some_lib.git lib / some_lib
我已经结帐某个分支工作但不是发布。有没有办法一步到位。否则我可以添加然后恢复到标签吗?
答案 0 :(得分:3)
子模块总是会导致父仓库记录特定的SHA1:它被称为 gitlink (special entry in the index of the parent repo)。
所以简单地将repo添加为子模块(实际记录的分支/提交结束并不重要。)
cd /path/to/parent/repo
git submodule add /url/of/submodule/repo
然后进入子模块文件夹并检查所需的确切sHA1或标签(与发布相对应的那个)
cd mysubmodule
git checkout <SHA1_of_a_release>
回到父回购,添加,提交和推送:你将记录新的子模块状态(也就是说你将记录你想要的SHA1)
cd ..
git add .
git commit -m "set submodule to a release SHA1"
git push
每当你克隆 - 递归你的父仓库时,你的子模块将再次签出到该版本SHA1。