我有一个git子模块,希望将其纳入主项目中(因为我有许多项目特定的代码将进入子模块)。
因此,我想删除子模块中的git引用,并将文件添加到我的主git存储库中。
但是,如何操作?
我有一个git子模块,希望将其纳入主项目中(因为我有许多项目特定的代码将进入子模块)。
因此,我想删除子模块中的git引用,并将文件添加到我的主git存储库中。
但是,如何操作?
你必须从索引中删除git链接条目:
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
步骤。
然后,您可以将该子文件夹添加并提交。
git submodule deinit subfolder
会从磁盘中删除子文件夹的内容。由于内容已经不存在了,所以 --cached
选项不起作用。(git 1.9.2) - denisdeinit
命令将子文件夹还原为空目录。 - VonC首先从子模块中删除 .git 文件夹。
只运行此命令会将缓存的文件夹和内容从git中移除,但不会删除该文件夹。
git rm -r --cached [EnterFolderNameWithoutBrackets]