git - 如何使非程序员更容易使用 Git 子模块?

标签 git git-submodules

我们的小型软件商店最近从 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/

相关文章:

git - 完全覆盖以前的 git 提交

git - 设置 git 推送到另一个用户的 Github 仓库?

git - 从 Git 中删除代码是否可以在需要时轻松将其恢复?

git - 如何 merge 子模块并始终保持 "ours"?

git - 是否有任何 git merge-strategies 用于忽略提交或分支 merge 到目标分支的子模块更新?

git - Visual Studio 2012 git ssh

git - 使用另一个文件夹中的 git "log"

git - 检查分支和子模块

git - 如何在所有提交中更新子模块 url

git - 有没有办法*不*克隆它来 `git submodule add` 一个 repo ?