删除子模组

开始使用 Git 子模组(Submodule)管理文件版本,删除子模组

方法 1

1. 变更模组资料夹名称

mv <子模组路径> <子模组暂存路径>

mv <path/to/submodule-folder> <path/to/rename-submodule-folder>

mv app/submodule-app app/submodule-app-tmp

2. 删除子模组设定

git submodule deinit -f – <子模组路径>

git submodule deinit -f – <path/to/submodule-folder>

git submodule deinit -f -- app/submodule-app

3. 移除 .git 目录子模组

rm -rf .git/modules/<子模组路径>

rm -rf .git/modules/<path/to/submodule-folder>

rm -rf .git/modules/app/submodule-app

4. 删除子模组

git rm -f <子模组路径>

git rm -f <path/to/submodule-folder>

git rm -f app/submodule-app

方法 2

1. 移除 .gitmodules 中子模组资讯

[submodule "app/submodule-app"]
path = app/submodule-app
url = git@github.com:kejyun/app-submodule.git

2. 将 .gitmodules 加入 stage 状态

git add .gitmodules

3. 删除 .git/config 子模组资讯

[submodule "app/submodule-app"]
	url = git@github.com:kejyun/app-submodule-app.git
	active = true

4. 从工作目录移除子模组

git rm –cached <子模组路径>

git rm –cached <path/to/submodule-folder>

git rm --cached app/submodule-app

5. 移除 .git/modules 中的子模组目录

rm -rf .git/modules/<子模组路径>

rm -rf .git/modules/<path/to/submodule-folder>

rm -rf .git/modules/app/submodule-app

6. commit 提交子模组移除的异动

git commit -m "Removed submodule <app/submodule-app>"

7. 删除子模组目录

rm -rf <子模组路径>

rm -rf <path/to/submodule-folder>

rm -rf app/submodule-app

参考资料