Answers:
子模块确实非常容易引用和使用。假设您已经将MyWebApp设置为存储库,请从终端发出以下命令:
cd MyWebApp
git submodule add git://github.com/jquery/jquery.git externals/jquery
这将创建一个名为externals/jquery
* 的目录,并将其链接到github jquery存储库。现在,我们只需要初始化子模块并将其克隆代码即可:
git submodule update --init --recursive
现在,您应该将所有最新的代码克隆到子模块中。如果jquery repo发生更改,并且您想下拉最新的代码,只需submodule update
再次发出命令即可。请注意:我的项目中通常有许多外部存储库,因此我总是将存储库分组在“外部”目录下。
在线Pro Git手册中有一些关于子模块(通常是git)的良好信息,以易于阅读的方式呈现。或者,git help submodule
也会提供良好的信息。或看看Git子模块教程 git Wiki上的。
我注意到此博客条目讨论了子模块,并将其与Subversion的svn:externals机制进行了比较:http : //speirs.org/blog/2009/5/11/understanding-git-submodules.html
*作为最佳实践,您应该始终将子模块放在其自己的目录中,例如“外部”。否则,您的根项目目录可能会变得非常混乱。
git submodule add
而且git submodule update
...我不确定它能获得多少方便。
最后,我发现http://github.com/evilchelu/braid似乎符合我期望子模块和遥控器工作的方式