如何仅从当前分支中删除“子模块”?我希望保持其他分支的子模块。
发布于 2017-04-11 16:45:11
没有人教过git如何处理兼职的子模块,擦除工作树在语义上比删除文件更麻烦(因为工作树往往有很多未跟踪但不方便重新创建的数据),所以根本不清楚什么是“正确的做法”。
你可以只更新条目,当你提交时,git会抱怨说,当你从一个有嵌套签出的提交切换到那个git rm --cached
时,它不能删除一个非空的工作树,但是如果你想要它消失,子模块repo已经被提升(例如,它通过git子模块更新在这里,所以submodule命令做了克隆,或者你自己把repo移到了安全的地方;无论哪种方式,.git
将是一个带有gitdir: the/repo/path
的文本文件),你可以自己擦除它。
发布于 2017-04-11 17:50:47
正如@jthill回答的那样,我不认为它是被考虑的东西。
你所能做的就是做一些工作来实现这个目标。
使用git工作树
由于工作树使用单独的3状态,你可以有不与其他分支共享3状态的分支,然后你可以从你的工作树中删除文件(index + workdir),然后你不会把它们作为当前分支的一部分。
正如您在屏幕截图中所看到的,子模块存在于右侧,但在第二个工作树中消失了。
https://stackoverflow.com/questions/43350216
复制相似问题