如何在git回购中具有链接依赖关系?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (15)

在我的脚本中,我经常使用有自己的repos的库(我的或其他人的)。我不想重复那些在我的回购和被困在更新他们每次新的版本出来。然而,当有人克隆回购,它仍然应该在本地工作,没有断链接。

对我能做什么有什么想法吗?

提问于
用户回答回答于

可以使用git中的子模块来完成此操作。在存储库中,请执行以下操作:

git submodule add path_to_repo path_where_you_want_it

因此,如果库的存储库的URL为git://github.com/example/some_lib.git你想要lib/some_lib在项目中,可以输入:

git submodule add git://github.com/example/some_lib.git lib/some_lib

请注意,这需要在存储库的顶级目录中完成。所以不要cd放在你先放的目录里。

在添加子模块之后,或者每当有人对您的存储库进行新的签出时,将需要这样做:

git submodule init
git submodule update

然后,添加的所有子模块都将在相同的修订版中签出。

当想要更新到一个库的更新版本时,cd进入子模块并拉出:

cd lib/some_lib
git pull

然后,当你做一个git status你应该看看lib/somelib列在修改后的部分中。添加该文件,提交,然后就可以更新了。当一个协作者将提交放到他们的存储库中时,他们会看到lib/somelib修改后直到它们运行git submodule update再来一次。

扫码关注云+社区