总结自:
上文记录了在子项目内修复detached head的方法,使用中发现是因为submodule使用不当引起的,当clone项目到其他位置时子项目内仍然是detached head。若对每个子项目都是用上文方法修复太过于麻烦,所以又查了两个修复方法,记录在此。
- 重新建立submodule,加入时使用
-b参数,使得母项目追踪子项目的指定branch(否则默认不追踪):
git submodule add -b <branch> <repository> [<submodule-path>]
git submodule update --remote
- 简单的一行命令递归修复所有子项目的detached head(其中默认都追踪子项目的master branch):
git submodule foreach -q --recursive 'git checkout $(git config -f $toplevel/.gitmodules submodule.$name.branch || echo master)'

本文总结了在Git子模块中修复分离头状态的方法,包括重新建立子模块时使用-b参数追踪特定分支,以及使用一行命令递归修复所有子模块的分离头问题。
2180

被折叠的 条评论
为什么被折叠?



