在 Git 中刪除子模組

Azhar Bashir Khan 2022年4月22日
在 Git 中刪除子模組

本教程演示瞭如何在 git 中刪除子模組。

在開發軟體專案時,我們經常會用到我們專案所需的外部框架和庫。這些框架和庫可能是開源的並儲存在 git 倉庫中。

我們可能希望將這些外部庫的原始碼保留在 git 倉庫的專案目錄中。git 的子模組功能允許我們將這些外部源(它們是單獨的 Git 倉庫)作為子目錄保留在我們的專案 Git 倉庫中。

然後我們可能會決定刪除這些 Git 子模組,因為它們可能不再與我們的專案相關。

我們現在將用一個例子來解釋它。

在 Git 中刪除子模組

在處理軟體專案時,我們經常需要使用庫的外部資源。外部庫可能由第三方或不同團隊開發。

可以在單獨的 Git 倉庫中跟蹤此類外部庫。

我們可以使用 Git 的子模組功能,將這樣的外部 Git 倉庫合併為我們專案 Git 倉庫的子目錄。因此,我們可以將另一個倉庫克隆到我們的專案中,並保持每個單獨的提交。

通常,我們可能會替換或刪除此類外部庫。我們可能會覺得我們的專案不再需要這樣一個外部庫。

因此,我們決定從我們的專案 Git 倉庫中刪除外部庫。為此,我們需要刪除外部庫的 Git 子模組。

假設我們的專案 Git 倉庫中有一個子模組 good-ext-lib。我們現在希望從 Git 倉庫和檔案系統中刪除子模組 good-ext-lib

我們需要按如下方式執行 Git 命令來刪除子模組。

$ git submodule deinit -f path/to/good-ext-lib

$ rm -rf .git/modules/path/to/good-ext-lib

$ git rm -f path/to/good-ext-lib

命令 git submodule deninit 取消註冊子模組 good-ext-lib。它從 git/config 檔案中刪除整個 submodule.$name 部分。此外,它還刪除了子模組的工作樹。

.git 資料夾中帶有 good-ext-lib 子模組路徑的命令 rm -rf 從我們專案的 .git/modules 目錄中刪除子模組目錄。

專案目錄中帶有 good-ext-lib 子模組路徑的命令 git rm 刪除了超級專案(我們的專案)的跟蹤資料。它刪除了 gitlink 條目。此外,它消除了 .gitmodules 檔案中存在的子模組部分並暫存該檔案。

最後,我們需要提交刪除 good-ext-lib 子模組,如下所示。

$ git commit -m "removed submodule good-ext-lib"

因此,現在我們已經從 Git 的專案目錄中刪除了 good-ext-lib 子模組。

因此,我們展示瞭如何在 Git 中刪除子模組。

欲瞭解更多資訊,請訪問 -

  1. git 子模組
  2. Git 子模組教程

相關文章 - Git Submodule