删除git子模块但保留文件


remove git submodule but keep files

我有一个Git子模块,我想成为我的主要项目的一部分(因为我有很多特定于项目的代码将进入子模块)。

所以我想删除对子模块的git引用,并将这些文件添加到我的主要git存储库中。

但是怎么做呢?


必须删除索引中的gitlink条目:

1
2
3
4
5
mv subfolder subfolder_tmp
git submodule deinit subfolder
git rm --cached subfolder
mv subfolder_tmp subfolder
git add subfolder

subfolder替换为子模块的文件夹名称,并确保不添加任何尾随斜杠。

这就是我在"删除Git子模块"中详述的内容。以及"un submodule a git submodule"。

--cached选项允许您将子文件夹内容保存在磁盘中…除了git submodule deinit已经删除了这些内容。因此,mv部分。

然后您可以添加并提交该子文件夹。


VONC的答案将删除子模块文件夹内容,除非您首先重命名物理文件夹-如本答案所示,Chad注意到其问题是重复的:

https://stackoverflow.com/a/16162228