运行
之间有什么区别git submodule update --remote
vs
cd <submodule directoy>
git pull
假设子模块先前已设置为跟踪某个分支:
git submodule add -b master [URL to Git repo]
答案 0 :(得分:33)
区别在于:
git pull
只会更新您的子模块分支,但它可以是您可以在该子模块仓库中自行检出的任何分支。git submodule update --remote
只会更新.gitmodule
中注册的分支,默认情况下,除非指定--rebase
或--merge
,否则您将获得分离的HEAD密钥submodule.$name.update
设置为rebase
,merge
或none
。在这两种情况下,您仍然必须返回父级仓库,添加并提交新的子模块SHA1参考。
这是因为在两个实例中,子模块的SHA1都会发生变化,这意味着父项目的 gitlink (special entry in the index,以子模块的根文件夹命名)必须加入并承诺。