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

标签 git github external git-submodules

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

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

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

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

此外,一旦设置完毕,如果我推/pull 到我自己的 Remote ,外部会保持完好吗?

最佳答案

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

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

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

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

git submodule update --init --recursive

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

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

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

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

关于git - 如何设置 git 项目以使用外部 repo 子模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2140985/

相关文章:

javascript - jQuery 打开外部 url 并操作 DOM

git - 为什么 git 在每次 merge 时都运行 "git gc --auto"?

c# - GitHub API 更新文件

github - 我的用户站点中的文件夹是否与项目站点冲突?

git github 无法推送到源

C++ 外部对象放置

git - 在远程服务器上创建本地 git 存储库的副本

自由雇主用例的 GitHub 设置?

git 别名现在不能说 "read: illegal option -t"

外部联系人的 Azure B2C 身份验证