我们的小软件商店最近从Subversion迁移到Git,因为我们的程序员发现Git更好。迁移不是无痛的,我们遇到了子模块功能的问题。我主要的抱怨是,一旦回购包含子模块,你不能简单地克隆它,并期望事情发挥作用。您必须执行额外的步骤才能初始化并下载子模块。后续拉应该update the submodules automatically,所以没关系。但是,当我添加一个新的子模块时,按下提交和人员拉动,他们不会自动获得新的子模块,他们必须手动再次手动输入git submodule update
。如何让非程序员更容易使用Git子模块?
这是愚蠢的,因为人们不能简单地用子模块拉回购,并期望它建立。这种理解是否正确?程序员可以在收到新的提交之后简单地编写一个脚本或别名来更新子模块,但对于我们的非程序员子模块来说很痛苦。我想提出一个解决方案,无论使用哪个Git客户端,回购总是在克隆/提取后正常工作。
我有什么选择?
您可能希望对初始克隆使用'git clone --recursive'命令,这将处理您的部分问题。 –
谢谢,我不知道'--recursive'。但是我们的非程序员使用GUI客户端(当前是GitBox),这就是我寻找不同解决方案的原因。在GUI中为子模块提供一流的支持是完美的,但我不会屏住呼吸。 – zoul
您确定要采用子模块路线吗?子模块应该是独立的模块,所以如果没有它们,事情就会崩溃,那么它就不是真正的独立模块。 – bluesman