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

时间:2011-11-21 18:03:25

标签: git git-submodules

我们的小软件商店最近从Subversion迁移到Git,因为我们的程序员更好地发现了Git。迁移并非轻松,我们遇到子模块功能问题。我的主要抱怨是,一旦repo包含子模块,你就不能简单地克隆它并期望事情能够发挥作用。您必须执行额外的步骤来初始化和下载子模块。随后的拉动应update the submodules automatically,这样就行了。但是当我添加一个新的子模块时,推送提交和人们拉动,他们不会自动获得新的子模块,他们必须再次手动git submodule update

这是愚蠢的,因为人们不能简单地用子模块拉回购物并期望它的构建。这种理解是否正确?程序员可以在接收新提交后简单地编写脚本或别名来更新子模块,但是对于我们的非程序员子模块来说很痛苦。我想提出一个解决方案,无论使用何种Git客户端,克隆/拉动后repo都能正常工作。

我有什么选择?

2 个答案:

答案 0 :(得分:0)

如果您计划使用大量子模块,我强烈推荐git-slave,特别是如果您要引用“公共库”。虽然如果集中精力在几个小时内通过一些实验来完成一系列场景,那么裸机子模块并不难以加速。

我还强烈推荐一些CI服务器为您制作版本。它将获取所有必要的子模块。您可以通过可下载的zip文件制作所有工件(您可以决定所需的工件)。我使用TeamCity,这是一种很好的方式来公开所有内容而无需使用任何VCS。

答案 1 :(得分:-1)

现在子模块支持更好,使问题几乎不存在。

  • GitBox获得了良好的子模块支持。

  • SourceTree by Atlassian是一个免费的Git客户端,在1.3中添加了子模块支持。在1.3.1中的子模块处理中有a small glitch,但是客户端似乎覆盖了我想要的所有子模块用例 - 也就是说,它使子模块对于非程序员来说几乎是透明的。

  • 自从1.4以来,
  • Git Tower似乎也很support submodules