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 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