Git 中列出子模組

John Wachira 2023年1月30日 2022年7月18日
  1. 什麼是 Git 子模組
  2. 建立一個 Git 子模組
  3. 子模組的通用 Git 命令
  4. 在 Git 中列出子模組
Git 中列出子模組

在本文中,我們將討論 Git 子模組。我們將介紹它們是什麼、子模組的用途和一般工作流程。

Git 子模組使我們可以將一個 repo 保留為另一個 repo 的子目錄。簡而言之,子模組是在特定時間範圍內對其他儲存庫的引用。

什麼是 Git 子模組

如果上面的解釋沒有把事情弄清楚,這個應該。

Git 子模組可以比作主機儲存庫中的一條記錄,它引用另一個儲存庫中的提交。通常,子模組是靜態的並跟蹤指定的提交。

它們不跟蹤分支或引用,並且在將更改推送到主機儲存庫時不會更新。

每次我們在 repo 中建立子模組時,Git 都會建立一個 .gitmodules 檔案。該檔案包含子模組的後設資料和與我們的 repo 的對映。

建立多個子模組將導致多個 gitmodules 檔案。

建立一個 Git 子模組

我們必須問自己的第一個問題是什麼時候應該建立一個子模組?

以下是一些最好建立 Git 子模組的場景。

  1. 當子專案或外部元件快速變化時,最好將你的程式碼鎖定到特定的提交。如果你預計即將發生的可能會破壞 API 的更改,這同樣適用。
  2. 將元件作為供應商依賴項進行跟蹤時。當我們不定期更新特定元件時,通常會發生這種情況。
  3. 當我們想在特定時間整合來自第三方的更改時。當你沒有頻繁更新時,它的效果最好。

子模組的通用 Git 命令

讓我們看一下命令列上的一些常見使用選項。

新增 Git 子模組

我們使用 git add submodule 命令在我們的主機儲存庫中建立一個新的子模組。這是建立 Git 子模組時的典型工作流程。

$ git submodule add <Repo URL>

git submodule add 命令需要一個指向 repo 的 URL 引數。Git 將克隆子模組,我們可以執行 git status 命令檢視新的 repo 狀態。

讓我們看一個例子。讓我們在我們的 Delftscopetech 儲存庫中新增一個子模組。

git 子模組新增命令

我們現在可以執行 git status 命令,如下所示。

$ git status

git status 命令

如上所示,我們現在有兩個新檔案,.gitmodulesLearn-Submodules。我們可以新增檔案並提交更改。

git submodule init

我們執行 git submodule init 命令將子模組的對映從 .gitmodules 檔案複製到我們的本地配置檔案中。當我們的儲存庫中有多個子模組時,它就會出現。

在 Git 中列出子模組

git submodule init 命令依賴於 .gitmodules 檔案。我們可以通過依賴同一個檔案來檢視所有子模組的列表。

首先,我們需要解析檔案。我們跑:

$ git config --file .gitmodules --name-only --get-regexp path

然後我們可以執行:

$ git config --file .gitmodules --get-regexp path | awk '{ print $2 }'

上面的命令將顯示儲存庫中存在的子模組的路徑。

Author: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

相關文章 - Git Submodule