如何“冻结”git子模块

时间:2009-10-18 09:10:32

标签: git git-submodules

我正在使用一些我自己没有托管的存储库,如果我在不可用时部署我的应用程序,我会怎么想?这根本不可能发生。

有没有办法以某种方式“冻结”子模块当我从存储库中取出子模块时,子模块已经初始化并更新了?

感谢任何帮助。

2 个答案:

答案 0 :(得分:4)

  

我正在使用一些我自己没有托管的存储库,如果我在不可用时部署我的应用程序,我会怎么想?这根本不可能发生。

通过克隆这些存储库来托管您自己的镜像,并使用镜像作为子模块。

答案 1 :(得分:2)

如果您无意跟踪子模块库中的开发,为什么要设置它?子模块适用于您希望单独跟踪存储库的外部开发的情况。我只是检查你想要“冻结”它的任何提交,并将其提交到你的主存储库。这可以使用subtree merge strategy来完成,{{3}}更适合于合并外部存储库,然后将组合存储库的整个历史记录一起使用。

有人说,当你正在部署/发布时,我不会依赖外部存储库和你的前沿开发资源,只需滚动一个发布存档/ tarball /可执行文件/然而你发布 - 并且因为你'我已经自己获得了子模块源,它变成了一个非问题,尽管在任何情况下这个问题也可以通过子树合并策略来缓解。