如何从当前分支中删除子模块

时间:2017-04-11 15:27:38

标签: git git-submodules

如何删除'子模块'从目前的分支?我想保留子模块和其他分支一样。

2 个答案:

答案 0 :(得分:1)

没有人教过git如何处理兼职子模块,擦除工作树在语义上比删除文件要困难得多(因为工作树往往有很多未跟踪但不方便重新创建的数据)所以“正确”这里要做的事情“根本不清楚。

你只能git rm --cached条目,当你提交git会抱怨时,当从具有嵌套checkout的那个提交切换到那个提交时,它不能删除非空的工作树,但如果你想要它并且子模块repo已被提升(例如,它通过git子模块更新,因此子模块命令执行了克隆,或者您自己将repo移动到某个地方安全;无论哪种方式.git都是gitdir: the/repo/path的文本文件你可以自己擦拭它。

答案 1 :(得分:1)

AS @jthill回答我不认为这是考虑到的事情。

你可以做的是做一个工作来实现这个目标 使用git worktree

由于worktree使用单独的3状态,你可以使用不与其他分支共享3状态的分支,而不是从工作树中删除文件(index + workdir),而不是将它们作为部分你当前的分支。

enter image description here

正如您在屏幕截图中看到的那样,子模块存在于右侧,但在第二个工作树上已经消失。