我们的小型软件商店最近从 Subversion 迁移到 Git,因为我们程序员发现 Git 更好。迁移并非一帆风顺,我们在子模块功能方面遇到了问题。我的主要提示是,一旦 repo 包含子模块,您就不能简单地克隆它并期望一切正常。您必须执行额外的步骤来初始化和下载子模块。随后的 pull 应该是update the submodules automatically ,所以没关系。但是当我添加一个新的子模块、推送提交和人们 pull 时,他们不会自动获取新的子模块,他们必须再次手动 git submodule update
。
这很愚蠢,因为人们不能简单地 pull 带有子模块的 repo 并期望它能够构建。这种理解是否正确?程序员可以简单地编写脚本或别名来在收到新提交后更新子模块,但对于我们的非程序员来说,子模块是一件痛苦的事情。我想提出一个解决方案,使存储库在克隆/pull 后始终正常工作,而不管使用的是什么 Git 客户端。
我有哪些选择?
最佳答案
如果您计划使用大量子模块,特别是如果您要引用“公共(public)库”,我强烈推荐 git-slave
。不过,如果专注于几个小时并通过一些实验来经历一系列场景,基本子模块并不难加快速度。
我还强烈推荐一些 CI 服务器来为您构建。它将获取所有必要的子模块。您可以通过可下载的 zip 文件提供所有工件(您决定您想要的是什么)。我使用 TeamCity,这是无需使用任何 VCS 即可公开所有内容的好方法。
关于git - 如何使非程序员更容易使用 Git 子模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8216319/