我想创建一个回购远程回购的回购。
例如,假设jQuery作为子模块:
git://github.com/jquery/jquery.git
用jQuery作为子模块创建存储库并添加我自己的外部设备作为远程存储库的过程是什么?
同样,一旦设置完成,如果我将 Remote 推/拉到自己的 Remote 上,外部设备是否会完好无损?
最佳答案
子模块确实非常容易引用和使用。假设您已经将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 Book上有一些很好的子模块信息(通常是git),以易于阅读的方式呈现。或者,
git help submodule
也可以提供很好的信息。或查看git Wiki上的Git Submodule Tutorial。我注意到这个博客条目讨论了子模块,并将其与Subversion的svn:externals机制进行了比较:http://speirs.org/blog/2009/5/11/understanding-git-submodules.html
*作为最佳实践,您应始终将子模块放置在其自己的目录中,例如“外部”。否则,您的根项目目录可能会变得非常困惑。