当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何设置一个git项目来使用外部repo子模块?》经验,为你挑选了2个好方法。

我想创建一个可以拉入远程仓库的仓库.

例如,假设jQuery为子模块:

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

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

一旦设置好,如果我推/拉到我自己的遥控器,外部是否保持完整?



1> memmons..:

    你有一个项目 - 称之为已经拥有github 仓库的MyWebApp

    您想在项目中使用jquery存储库

    您希望将jquery repo作为子模块提取到项目中.

子模块真的很容易引用和使用.假设您已将MyWebApp设置为repo,则从终端发出以下命令:

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再次发出命令.请注意:我的项目中通常有许多外部存储库,因此我总是将存储库分组在"externals"目录下.

在线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

*作为最佳实践,您应始终将子模块放在自己的目录中,例如Externals.如果不这样做,您的根项目目录可能会非常快速地混乱.


很棒的解释!:)另外,如果你想要更多的细节,内部等,"git help submodules"会有所帮助.
谢谢,正是我需要的.
对不起,但与svn externals相比,它并不那么容易
@Keil这是两个命令,`git submodule add`和`git submodule update` ...我不确定它能变得多么容易.

2> WhyNotHugo..:

您需要知道的大部分内容已经得到了解答,所以我不打算解决这个问题,但是,我发现了一小段通常缺失的信息.

如您所知,"git pull"不会更新子模块,"git submodules update"也不会下载这些子模块的最新HEAD.

要将所有子模块更新为最新的上游修订版,您可以使用

git submodule foreach git pull

如果你经常改变你的子模块,并且有很多,那么"git foreach"将变得非常宝贵.

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有