我想创建一个拉入远程仓库的仓库。
例如,假设 jQuery 作为一个子模块:
git://github.com/jquery/jquery.git
使用 jQuery 作为子模块创建存储库并将我自己的外部存储库添加为远程存储库的过程是什么。
此外,一旦设置完成,如果我推/拉到我自己的遥控器,外部是否会保持不变?
子模块非常非常容易引用和使用。假设您已经将 MyWebApp 设置为存储库,请从终端发出以下命令:
cd MyWebApp git submodule add git://github.com/jquery/jquery.git externals/jquery
这将创建一个名为externals/jquery* 的目录并将其链接到 github jquery 存储库。现在我们只需要初始化子模块并将代码克隆到它:
externals/jquery
git submodule update --init --recursive
您现在应该将所有最新代码克隆到子模块中。如果 jquery 存储库发生更改并且您想要拉下最新的代码,只需submodule update再次发出命令。请注意:我的项目中通常有许多外部存储库,因此我总是将存储库分组在“外部”目录下。
submodule update
在线Pro Git Book有一些关于子模块(和一般的 git)的很好的信息,以易于阅读的方式呈现。或者,git help submodule也会提供很好的信息。或者查看git wiki 上的Git 子模块教程。
git help submodule
我注意到这篇博客文章讨论了子模块并将它们与 Subversion 的 svn:externals 机制进行了比较:http: //speirs.org/blog/2009/5/11/understanding-git- submodules.html