Total Pageviews

Friday 14 March 2014

git submodule


git help 解释⇧

git-submodule - Initialize, update or inspect submodules

说明⇧

git 中的submodule是为了解决项目中依赖别的库,submodule即为依赖的库,方便库的更新,管理。

每个submodule都是一个库,这样可以看到一个大的仓库中包含小的若干仓库,在实际开发中是常见的。
命令⇧

git submodule add
git submodule init
git submodule update

git submodule summary
...

这些命令完成submodule的添加,初始化(注册到本仓库,然后可以被跟踪到),更新仓库内容,查看摘要等。纤细的命令可以通过 git submodule –help 获得
内部机制⇧

git 的主仓库对于submodule的管理是通过如下文件来进行: .gitmodules, .git/config, .git/modules/

    .gitmodules 内容如下:

    [submodule "libs/lib2"]
         path = libs/lib2
         url = ../../repos/lib2.git

    这个文件在git submodule add的时候生成
    .git/config 在git submodule init 的时候生成
    .git/modules/ 在git submodule add的时候生成,里面是submodule的内容

主仓库根据submodule的commit ID来跟踪submodule。

当submodule做了commit的或者work tree改动的时候,主仓库能够通过git status查看到。需要在主仓库再commit一下,更新主仓库引用的submodule的 commit ID。