我在本地机器上有三个分支:
- master
- feature-branch-with-submodule
- feature-branch-without-submodule
原来没有子模块的分支曾经有一个子模块,我按照 这篇 SO 帖子 的指示删除了子模块。但是我不想从 master
和 feature-branch-with-submodule
中删除子模块。
然而,现在我已经完成了对 feature-branch-without-submodule
的操作,我想切换到 feature-branch-with-submodule
。所以我执行 git checkout 命令,但是出现了以下错误:
fatal: not a git repository: src/vendor/mysubmodule/../../../../../.git/modules/src/vendor/mysubmodule
如何修复该问题,使带有子模块的分支有它,而没有子模块的分支没有它,并且我可以自由地使用git checkout在两个分支之间切换?
git checkout --recurse-submodules
不够用,你可以考虑使用像这些的post-checkout
钩子。 - phd