Git 中的子模組更新

Abdul Jabbar 2022年4月22日
Git 中的子模組更新

子模組是一種將 Git 倉庫作為子目錄保留在當前分支中的方法。子模組通常是從第三方倉庫中匯入的。例如,一個大型專案可能有一個包含庫的子模組。

submodule 可用於專案的任何部分。它可以有它的子模組等等,這取決於需求。它們是固定在父倉庫工作目錄中特定路徑的父 Git 倉庫中的 Git 倉庫。

為了開發子模組,我們使用 git submodule init 在專案的根目錄中建立一個 .gitmodules 檔案,其中包含我們打算在接下來的任務中使用的子模組列表。然後,我們將使用命令 git submodule update 來拉入我們的子模組。

要更新子模組,我們應該在父倉庫中指定子模組路徑。要訪問子模組,我們必須始終指定相對於父倉庫的路徑。因此,子模組路徑是相對於專案的。

為了避免需要指定子模組路徑,我們可以在 gitmodules 檔案中設定子模組路徑。gitmodules 檔案是倉庫根目錄中的純文字檔案。gitmodules 檔案定義了當前倉庫的父倉庫和子模組之間的對映。

更新 Git 子模組

我們將向你展示如何使用伺服器上最近的提交來更新我們工作區中的 Git 子模組。

  • 克隆遠端倉庫,如果我們還沒有的話。
  • 釋出一個 git 子模組更新 -remote 命令。
  • 列出從倉庫拉到 Git 索引的任何新檔案。
  • 執行 git 提交。
  • 推回原點。

git submodule 命令有一個名為 --update 的引數,可用於從子模組獲取最新程式碼。

git submodule --update 
SomeSubmodule $ git submodule --sync
SomeSubmodule $ git submodule update --init 

我們可以使用 update 引數將子模組更新為最新的提交。為了避免大量複雜的檢出和推送命令,為子模組更新命令建立一個快速別名要簡單得多。

git submodule update --remote --merge

上述命令更新所有子模組,確保工作樹幹淨並與遠端分支同步。為避免每次都獲得合併提交,請使用 -merge 標誌來合併更新。使用 Git submodules 就像一把雙刃劍,因為它可以讓我們的開發生活變得更輕鬆,但如果我們不知道它是如何工作的,它也會讓我們的生活變得更艱難。我們使用它的次數越多,我們就越瞭解它們的工作原理,從而能夠利用它們來發揮我們的優勢。

作者: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

相關文章 - Git Submodule