刪除子模組

開始使用 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

參考資料