4 git git-submodules git-detached-head
我在项目中添加了 2 个子模块,subA 和 subB,位于 externals/subA 和 externals/subB 中。
今天,另一位团队成员提交了他的代码,当它被拉取时,在git statusexternals/subA 和 externals/subB 中使用时,subA 和 subB 都显示分离头状态。
我先做了git submodule update,没有报告任何错误。我一次又一次地尝试,git submodule init但git submodule update它没有改变。
我们如何才能使子模块恢复同步?子模块出现这种情况的原因是什么?自我们开始以来,这是第一次出现问题。谢谢。
根据定义,子模块在分离的 HEAD 中签出:它表示在父存储库索引中记录为gitlink的特定 SHA1 。
请参阅“ 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
Run Code Online (Sandbox Code Playgroud)
注意:如此处所示,任何git submodule update命令都会自动分离 HEAD,即使子模块配置为遵循分支也是如此。
作为测试添加git config submodule.<name>.update合并,因为默认情况下,更新会检查提交(分离的 HEAD)
当运行命令“”时,git 子模块在 init 阶段本身被分离
git submodule update --init --recursive。我了解 git 引用并签出 gitsubmodules 的特定提交。
因此,我们创建了一个脚本来运行“
git submodule foreach git checkout master”和“git submodule foreach git pull origin master”等。这样,我们就可以在本地计算机中设置存储库时保持附加的头状态。
是的,git submodule update --remote --merge当我们需要更新子模块以反映远程更改时,我们运行“”。
| 归档时间: |
|
| 查看次数: |
6955 次 |
| 最近记录: |