克隆 Git 倉庫的子目錄

Azhar Bashir Khan 2022年5月31日
克隆 Git 倉庫的子目錄

本教程將教授如何克隆 Git 倉庫的子目錄。

Git 是一個版本控制系統,它維護對專案目錄所做更改的歷史記錄。在典型的專案開發環境中,人們會將不同的專案模組分離到不同的子目錄中。

然後只能簽出或克隆特定的專案模組子目錄。為此,我們可以使用 Git 提供的 sparse-checkout 功能。

我們現在將用一個例子來說明這一點。

Git 倉庫中的克隆或簽出子目錄

Git 用於協作開發環境中,以跟蹤對專案目錄中的檔案所做的更改。一種方法是將不同的專案模組儲存在專案開發環境的主專案目錄內的不同子目錄中。

Git 倉庫將跟蹤這個主專案目錄,因此可以克隆或簽出整個專案目錄。通常,不同的團隊會在一個大型專案中處理不同的專案模組。

因此,在這種情況下,不需要檢查整個專案目錄。僅克隆特定團隊正在處理的專案模組子目錄就足夠了。

僅克隆特定子目錄(即)專案 Git 倉庫的子集稱為 sparse checkout。我們可以通過 sparse checkout 從 Git 倉庫中的專案目錄中僅簽出我們想要的子目錄。

假設我們有一個名為 my_project 的專案目錄。在專案目錄 my_project 中,有不同模組的子目錄,名為 frontendbackenddocumentation 等。

我們只想簽出或克隆 frontend 模組子目錄。因此,我們現在將首先為倉庫建立一個目錄,如下所示。

$ mkdir my_project
$ cd my_project

建立專案目錄後,我們現在將初始化 Git 倉庫並新增遠端 url,如下所示。

$ git init
$ git remote add -f origin https://github.com/johndoe/my_project.git

我們必須啟用 sparse checkouts 以僅簽出或克隆主專案目錄的子目錄。

我們可以使用 git config 命令來實現相同的目的。我們需要使用 git config 命令,如下所示。

$ git config core.sparsecheckout true

我們現在可以告訴 Git 我們要檢查哪些子目錄。

因此,為了只啟用 frontend 子目錄的簽出,我們需要在 .git/info/sparse-checkout 檔案中列出它。

$ echo "frontend/" >> .git/info/sparse-checkout

現在,我們可以從遠端 Git 倉庫中獲取檔案。

$ git pull origin master

現在,我們在工作樹中只有主專案 my_projectfrontend 子目錄。

因此,我們學習瞭如何在 Git 中僅克隆或簽出 Git 倉庫的特定子目錄。

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

  1. git-init
  2. git-read-tree
  3. git-sparse-checkout

相關文章 - Git Clone