删除git子模块但保留文件

时间:2014-11-05 08:20:01

标签: git

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

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

但是怎么样?

2 个答案:

答案 0 :(得分:28)

您必须删除索引中的gitlink entry

mv subfolder subfolder_tmp
git submodule deinit subfolder
git rm --cached subfolder
mv subfolder_tmp subfolder
git add subfolder

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

这是我在“Remove a Git submodule?”和“un-submodule a git submodule”中详述的内容。

--cached选项允许您将子文件夹内容保留在磁盘中......除git submodule deinit之外已经删除了该内容。因此mv部分。

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

答案 1 :(得分:0)

VonC的答案将删除子模块文件夹内容,除非您首先重命名物理文件夹 - 如本答案中所示,其问题被乍得重复说明:

https://stackoverflow.com/a/16162228