專案上傳git過程中,在git add步驟有幾個檔案怎麼也執行不成功(子模組問題)
阿新 • • 發佈:2020-07-24
刪除 git submodule (git 庫子模組)
有兩種情況會建立 git submodule (git 子模組)- 顯性方式新增:使用 git submodule 命令將其他git庫作為子目錄新增,即子模組
- 隱性方式新增:使用 git add 新增,如果某個子目錄本身是一個 git 庫,就自動新增為子模組,不再遞迴新增該目錄下面的檔案
兩種方式新增模組,效果略有不同
- 隱性方式新增,看似直接將目錄加入版本庫,而實際上是加入一個和目錄名同名的 submodule 條目;
- 顯性方式新增,除了像隱性方式在 index/commit 中建立submodule 條目外,還會建立一個 .gitmodules 檔案,也會在 .git/config 中建立相應記錄。具體參見 git submodule 命令。
子模組的副作用
有時,並未意識到目錄按照模組方式新增。例如在用 gistore 備份檔案和目錄時,當某個目錄本身用 git 做了版本控制,就會以子模組的方式新增目錄。 如何將子模組按照正常的目錄形式新增到版本控制系統呢?用下面的方法做不到:- 刪除子模組的 .git 目錄,即將子模組下的 git 版本庫刪除
- 當執行 git add 時報錯: fatal: Path '... ...' is in submodule '...'
如何刪除子模組
使用 git 命令即可刪除子模組
git rm --cached path/to/submodule
對於顯性定義的子模組,還要刪除 .gitmodules 檔案和 .git/config 檔案中的相關條目。