Git 子模块分离头状态
Git submodule detached head state
我在 externals/subA 和 externals/subB 中向项目添加了 2 个子模块,subA 和 subB。
今天另一个团队成员提交了他的代码,当它被拉取时,在 externals/subA 和 externals/subB 中使用 git status
时,subA 和 subB 都显示分离头状态。
我先做了 git submodule update
并且没有报告错误。我又试了 git submodule init
和 git submodule update
但它没有改变。
我们怎样才能让子模块恢复同步?是什么导致子模块出现这种情况?这是我们开始以来第一次出现问题。谢谢。
一个子模块根据定义在分离的 HEAD 中签出:它表示一个特定的 SHA1 记录为 gitlink in the parent repo index。
查看“git submodule update
”以确保子模块正在跟踪分支:
# add submodule to track master branch
git submodule add -b master [URL to Git repo];
# update your submodule
git submodule update --remote
# or (with rebase)
git submodule update --rebase --remote
注意:与shown here一样,任何git submodule update
命令都会自动分离HEAD,即使子模块被配置为跟随一个分支。
作为测试添加 git config submodule.<name>.update
合并,因为默认情况下,更新检查提交(分离的 HEAD)
user859375 adds :
The git submodule is detached in the init stage itself when running command "git submodule update --init --recursive
".
I understand git refers and check-out particular commit of gitsubmodules.
So, we created a script to run "git submodule foreach git checkout master
" and "git submodule foreach git pull origin master
" among other things.
This way we're able to keep the attached head state when setting up repo in local machine.
And yes we run "git submodule update --remote --merge
" when we need to update submodules to reflect changes in remote.
我在 externals/subA 和 externals/subB 中向项目添加了 2 个子模块,subA 和 subB。
今天另一个团队成员提交了他的代码,当它被拉取时,在 externals/subA 和 externals/subB 中使用 git status
时,subA 和 subB 都显示分离头状态。
我先做了 git submodule update
并且没有报告错误。我又试了 git submodule init
和 git submodule update
但它没有改变。
我们怎样才能让子模块恢复同步?是什么导致子模块出现这种情况?这是我们开始以来第一次出现问题。谢谢。
一个子模块根据定义在分离的 HEAD 中签出:它表示一个特定的 SHA1 记录为 gitlink in the parent repo index。
查看“git submodule update
”以确保子模块正在跟踪分支:
# add submodule to track master branch
git submodule add -b master [URL to Git repo];
# update your submodule
git submodule update --remote
# or (with rebase)
git submodule update --rebase --remote
注意:与shown here一样,任何git submodule update
命令都会自动分离HEAD,即使子模块被配置为跟随一个分支。
作为测试添加 git config submodule.<name>.update
合并,因为默认情况下,更新检查提交(分离的 HEAD)
user859375 adds
The git submodule is detached in the init stage itself when running command "
git submodule update --init --recursive
".I understand git refers and check-out particular commit of gitsubmodules.
So, we created a script to run "
git submodule foreach git checkout master
" and "git submodule foreach git pull origin master
" among other things.This way we're able to keep the attached head state when setting up repo in local machine.
And yes we run "git submodule update --remote --merge
" when we need to update submodules to reflect changes in remote.