小编典典

如何设置 git 项目以使用外部 repo 子模块?

all

我想创建一个拉入远程仓库的仓库。

例如,假设 jQuery 作为一个子模块:

git://github.com/jquery/jquery.git

使用 jQuery 作为子模块创建存储库并将我自己的外部存储库添加为远程存储库的过程是什么。

此外,一旦设置完成,如果我推/拉到我自己的遥控器,外部是否会保持不变?


阅读 81

收藏
2022-06-11

共1个答案

小编典典

  1. 你有一个项目——称之为 MyWebApp ,它已经有一个 github 存储库
  2. 您想在项目中使用 jquery 存储库
  3. 您想将 jquery 存储库作为 子模块 拉入您的项目。

子模块非常非常容易引用和使用。假设您已经将 MyWebApp 设置为存储库,请从终端发出以下命令:

cd MyWebApp
git submodule add git://github.com/jquery/jquery.git externals/jquery

这将创建一个名为externals/jquery* 的目录并将其链接到 github jquery 存储库。现在我们只需要初始化子模块并将代码克隆到它:

git submodule update --init --recursive

您现在应该将所有最新代码克隆到子模块中。如果 jquery 存储库发生更改并且您想要拉下最新的代码,只需submodule update再次发出命令。请注意:我的项目中通常有许多外部存储库,因此我总是将存储库分组在“外部”目录下。

在线Pro Git Book有一些关于子模块(和一般的 git)的很好的信息,以易于阅读的方式呈现。或者,git help submodule也会提供很好的信息。或者查看git wiki 上的Git
子模块教程。

我注意到这篇博客文章讨论了子模块并将它们与 Subversion 的 svn:externals 机制进行了比较:http:
//speirs.org/blog/2009/5/11/understanding-git-
submodules.html

  • 作为最佳实践,您应该始终将子模块放在它们自己的目录中,例如 Externals。如果你不这样做,你的根项目目录会很快变得非常混乱。
2022-06-11