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?这是灾难的一个方法,还是一个受支持的用例?
答案 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推送,那么两者都可以被任何客户端拉动。