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]
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]
区别在于:
git pull
只会更新您的子模块分支,但它可以是您可以在该子模块存储库中自己签出的任何分支。git submodule update --remote
只会更新在 中注册的分支.gitmodule
,并且默认情况下,您最终会得到一个分离的 HEAD,除非指定--rebase
or--merge
或键submodule.$name.update
设置为rebase
,merge
或none
.在这两种情况下,您仍然必须返回父 repo,添加并提交新的子模块 SHA1 引用。
这是因为在这两种情况下,子模块的 SHA1 都发生了变化,这意味着必须添加并提交gitlink(父 repo索引中的特殊条目,以子模块的根文件夹命名)。
Agit submodule update --init --remote
就像:
git submodule init
:初始化(签出)索引中记录的子模块git submodule update --remote
:一旦子模块被初始化(签出),就从注册的分支(或默认情况下的主分支)中提取。