使用Git子模块跟踪分支,其中一些客户端< 1.8.2

时间:2014-08-22 18:41:09

标签: git git-submodules

Git 1.8.2增加了使用子模块跟踪远程分支的可能性(这很棒)。

# add submodule to track master branch
git submodule add -b master [URL to Git repo];

# update your submodule
# --remote will also fetch and ensure that
# the latest commit from the branch is used
git submodule update --remote

.gitmodules看起来像:

[submodule "libraries/shared_libraries"]
    path = libraries/shared_libraries
    url = https://user@bitbucket.org/team/shared_libraries.git
    branch = develop

在我们的开发商店中,所有开发人员都使用Git> v1.8.2。但是,我们的QA,分期和生产服务器运行RHEL 6.5或CentOS,其具有1.7.1 OOTB。

这些框通常只是"仅拉动",并且不用于提交代码。使用" git submodule init / update"时应该发生什么?从我们的盒子运行1.7.1?这是灾难的一个方法,还是一个受支持的用例?

1 个答案:

答案 0 :(得分:1)

  

这是一个灾难的配方,还是支持的用例?

支持,因为它会忽略.gitmodules分支指令 git submodule update --init只需将子模块签出到its gitlink entry as recorded in the index of the main parent repo

该gitlink条目将是子模块的SHA1,最后由父回购记录(但是git add + git commit + git push)。 只要父reo已经被gitlink条目推送,子模块已经被包含在其历史记录中的SHA1推送,那么两者都可以被任何客户端拉动。