移除 Git 里面的 Submodule

如何移除子模块(仓库)。

近在整理我的博客项目中,用到了 hexo 的 next 主题,因为主题的原作者仓库的地址发生了变化,所以我也相应的 fork 了新的仓库,从而需要更新已有的博客项目中的 module 引用。下面我把步骤列出,以备后用 :)

移除已有的 module

移除 .gitmodules 文件夹

1
2
cd <project-root-path>
rm .gitmodules

Stage 刚才的修改

1
2
cd <project-root-path>
git add .gitmodules

修改 .git/config 文件的内容

删除所有和你想删除的 module 的相关行

[submodule "vendor"]
url = git://github.com/SharryXu/hexo-theme-next.git

通过 git 命令来移除 submodule

1
git rm --cached path/to/your/submodule

物理移除在 .git 的 submodule 文件夹下的 module 文件夹

1
rm -rf .git/modules/submodule_name

提交修改 (先前 Stage 的修改)

1
git commit -m "<comment>"

物理移除 submodule 的文件夹

1
rm -rf path/to/your/submodule

注意:在这里的命令都是 UNIX 系统下的,如果是使用 Windows 系统, PowerShell 的命令或参数可能有所不同。

updatedupdated2023-12-052023-12-05