[TOC]
有時子模塊的項目維護地址發生了變化,或者需要替換子模塊,就需要刪除原有的子模塊。
## 操作方法
刪除子模塊較復雜,步驟如下:
```
rm -rf 子模塊目錄 刪除子模塊目錄及源碼
vi .gitmodules 刪除項目目錄下.gitmodules文件中子模塊相關條目
vi .git/config 刪除配置項中子模塊相關條目
rm .git/modules/* 刪除模塊下的子模塊目錄,每個子模塊對應一個目錄,注意只刪除對應的子模塊目錄即可
```
執行完成后,再執行添加子模塊命令即可,如果仍然報錯,執行如下:
```
git rm --cached 子模塊名稱
```
完成刪除。
## 舉例
>注:做刪除前我們先備份一下,我們要刪除全部`.gitmodules`
如果有多個分支,在每個分支都這么操作一下!
我們做如下操作:
### 第一步:刪除子模塊目錄
```
rm -rf simplewind/extend
rm -rf simplewind/vendor
rm -rf simplewind/thinkphp
rm -rf public/plugins
```
### 第二步:刪除子模塊配置
```
rm -rf .gitmodules
```
### 第三步:修改git主配置文件
```
vim .git/config
```
原文件是:
```
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = false
[remote "origin"]
url = https://gitee.com/sxctkj/tmc.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "develop"]
remote = origin
merge = refs/heads/develop
[submodule "simplewind/thinkphp"]
active = true
url = https://gitee.com/liu21st/framework
[submodule "public/plugins"]
active = true
url = https://gitee.com/hongweizhiyuan/thinkcmf5-plugins
[submodule "simplewind/extend"]
active = true
url = https://gitee.com/hongweizhiyuan/thinkcmf5-extend
[submodule "simplewind/vendor"]
active = true
url = https://gitee.com/hongweizhiyuan/thinkcmf5-vendor
[pull]
rebase = true
[branch "release1.0"]
remote = origin
merge = refs/heads/release1.0
[branch "release2.0"]
remote = origin
merge = refs/heads/release2.0
```
修改文件刪除`submodule`后是:
```
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = false
[remote "origin"]
url = https://gitee.com/sxctkj/tmc.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "develop"]
remote = origin
merge = refs/heads/develop
[pull]
rebase = true
[branch "release1.0"]
remote = origin
merge = refs/heads/release1.0
[branch "release2.0"]
remote = origin
merge = refs/heads/release2.0
```
### 第三步:刪除子模塊兒配置全部文件
```
rm -rf .git/modules
```
### 第四步:清除子模塊兒緩存
```
git rm --cached simplewind/extend
git rm --cached simplewind/vendor
git rm --cached simplewind/thinkphp
git rm --cached public/plugins
```
### 第五步:忽略文件
```
vim .gitignore
```
去掉
```
simplewind/vendor
simplewind/extend
```
- 其他
- Git submodule 如何刪除一個 submodule
- 解 git submodule 無映射路徑的問題
- 刪除分支
- git revert
- 基本命令
- git reset的三種模式
- ignore的使用
- git tag
- 用戶相關
- 問題
- 重命名遠程分支
- 注意事項
- GIT里設置大小寫敏感
- 如何處理git每次提交都輸入密碼
- Git 工作流程
- 詳細使用
- git 放棄更改
- 子模塊兒
- 增加子模塊兒
- 刪除子模塊兒
- 更新子模塊兒
- 分支
- 分支(branch)操作
- git刪除遠程分支和本地分支
- 項目屬于哪個分支
- 標簽(tag)操作
- 命令
- branch
- remote
- clone
- tag
- log
- reflog
- diff
- reset
- merge
- push
- pull
- submodule
- 分支命名