Git 如何从没有子模块的分支签出带有子模块的分支
我在本地机器上有三个分支:Git 如何从没有子模块的分支签出带有子模块的分支,git,git-submodules,Git,Git Submodules,我在本地机器上有三个分支: 主人 带子模块的特征分支 无子模块特征分支 没有子模块的分支过去有一个子模块,我按照中的说明删除了子模块。我不想从master和带有子模块的功能分支中删除子模块 但是,现在我已经完成了不带子模块的功能分支,我想切换到带子模块的功能分支。因此,我进行了git签出,但得到了错误: fatal: not a git repository: src/vendor/mysubmodule/../../../../../.git/modules/src/vendor/mysu
- 主人
- 带子模块的特征分支
- 无子模块特征分支
master
和带有子模块的功能分支中删除子模块
但是,现在我已经完成了不带子模块的功能分支
,我想切换到带子模块的功能分支
。因此,我进行了git签出,但得到了错误:
fatal: not a git repository: src/vendor/mysubmodule/../../../../../.git/modules/src/vendor/mysubmodule
我如何修复它,使带有子模块的分支拥有它,而没有子模块的分支没有它,并且我可以使用git checkout自由地来回切换?我已经1-2天不知道是什么问题。
以下是我迄今为止找到的最接近(也是最糟糕)答案的链接:
快速回答:
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
IF <代码> Git签出的重复副本——递归子模块不够,您应该考虑使用<代码> POST CuthOuts< /Cord>挂钩。我有一个非常类似的问题:需要在子模块与分支之间切换,而没有分支。你的回答使我走上了正确的道路。当我有能力的时候,我会建议你做一些澄清性的编辑(有些东西上面有一个完整的“建议编辑队列”,所以我真的不知道它是什么)。