如何将repo的特定版本添加为子模块

时间:2017-04-28 02:42:41

标签: git github release

我发现这个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

我已经结帐某个分支工作但不是发布。有没有办法一步到位。否则我可以添加然后恢复到标签吗?

1 个答案:

答案 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。