我在本地计算机上有三个分支:
不带子模块的分支曾经有一个子模块,我按照this SO post中的说明删除了子模块。我不想从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自由地来回切换?
答案 0 :(得分:2)
我已经1-2天在想什么问题了。 这是到目前为止我找到的最接近(而且确实很糟糕)答案的链接:
Checkout branch with different submodules is not working
快速解答:
Supposing, for example, branch master has submodule A and branch alpha has submodule B.
To properly checkout master you should, essentially
git submodule deinit .
git checkout master
git submodule update --init --recursive
To go back to alpha, again
git submodule deinit .
git checkout alpha
git submodule update --init --recursive