git submodule update --remote vs git pull

时间:2013-10-27 15:26:43

标签: git git-submodules

运行

之间有什么区别
git submodule update --remote

vs

cd <submodule directoy>
git pull

假设子模块先前已设置为跟踪某个分支:

git submodule add -b master [URL to Git repo]

1 个答案:

答案 0 :(得分:33)

区别在于:

  • git pull只会更新您的子模块分支,但它可以是您可以在该子模块仓库中自行检出的任何分支。
  • git submodule update --remote只会更新.gitmodule中注册的分支,默认情况下,除非指定--rebase--merge,否则您将获得分离的HEAD密钥submodule.$name.update设置为rebasemergenone

在这两种情况下,您仍然必须返回父级仓库,添加并提交新的子模块SHA1参考。
这是因为在两个实例中,子模块的SHA1都会发生变化,这意味着父项目的 gitlink special entry in the index,以子模块的根文件夹命名)必须加入并承诺。