59

What is the difference between running

git submodule update --remote

vs

cd <submodule directoy>
git pull

Assuming that the submodule was previously set to track some branch:

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

1 回答 1

62

区别在于:

  • git pull只会更新您的子模块分支,但它可以是您可以在该子模块存储库中自己签出的任何分支。
  • git submodule update --remote只会更新在 中注册的分支.gitmodule,并且默认情况下,您最终会得到一个分离的 HEAD,除非指定--rebaseor--merge或键submodule.$name.update设置为rebase,mergenone.

在这两种情况下,您仍然必须返回父 repo,添加并提交新的子模块 SHA1 引用。
这是因为在这两种情况下,子模块的 SHA1 都发生了变化,这意味着必须添加并提交gitlink(父 repo索引中的特殊条目,以子模块的根文件夹命名)。

Agit submodule update --init --remote就像:

于 2013-10-27T17:44:28.397 回答