一尘不染

git submodule update --remote vs git pull

git

区别

git submodule update --remote

对比

cd <submodule directoy>
git pull

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

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

阅读 297

收藏
2022-05-16

共1个答案

一尘不染

区别在于:

  • 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就像:

2022-05-16