如何做git子模块以及为什么要使用git子模块

Man*_*nju 8 git github git-submodules git-subtree

我找到了一个github项目,它使用git子模块.

git子模块的用途是什么?

如何创建git子模块?

它们与子树的区别如何?

GitSubModule

谢谢

小智 8

Git子模块:

git存储库中的子模块就像一个子目录,它本身就是一个独立的git存储库.当您在git中拥有一个依赖于其他项目的特定版本的项目时,这是一个有用的功能

Git子树:

Git子树允许您将任何存储库作为另一个存储库的子目录插入.子目录将成为超级项目的永久部分

Git子树和子模块:

子树合并将子树的内容和历史永久地集成到合并子树的父存储库中.

子模块只是对子模块中特定提交的引用.引用提交的更改历史记录保留在父模块中,但不会在父模块中跟踪子模块的内容或历史记录.

配置Git子模块:

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

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

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

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

    1. cd MyWebApp

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

    3. git submodule update --init --recursive 您现在应该将所有最新代码克隆到子模块中.如果jquery repo更改并且您想要删除最新代码,则只需再次发出submodule update命令.

      请注意:

      我的项目中通常有许多外部存储库,所以我总是将repos分组到externals目录下.