匯出 Git 專案

John Wachira 2022年7月12日
匯出 Git 專案

在本文中,我們將討論在 Git 中匯出專案。我們使用 git archive 命令來建立我們的 Git 倉庫的存檔檔案。

這樣的檔案會將幾個檔案合併為一個。存檔檔案便於在開發人員之間共享或長期儲存。

git archive 命令

它有什麼作用?

我們使用 git archive 命令為指定的 ref 生成存檔檔案,例如提交、分支和樹。該命令可以與其他引數一起使用來改變輸出,如下所示。

Git 匯出示例

讓我們從一個基本的 git archive 命令開始。

$ git archive --format=tar HEAD

如果我們在終端上執行此命令,它將從我們倉庫中的 HEAD 建立一個存檔檔案。存檔將轉到我們的臨時 stdout 流。

我們可以指定一個永久檔案,如下所示。

$ git archive --output=./sample_repo_archive.tar --format=tar HEAD

執行上述命令時,它將為我們的 HEAD 引用建立一個存檔檔案並將其儲存在 sample_repo_archive.tar 檔案中。 --format=tar 選項指示 Git 生成未壓縮的存檔輸出。

我們可以將其他流行的格式,如 ziptar.gz 傳遞給我們的格式選項。如果我們不包含格式選項,Git 會處理指定的 --output 選項。

$ git archive --output=./sample_repo_archive.tar.gz --format=tar HEAD ./Updates

Git 還使歸檔我們倉庫的部分成為可能。上面的命令將為我們倉庫的 /.Updates 目錄中的檔案建立一個存檔檔案。

Git 存檔使用選項

上面的示例為我們提供了最常用的 git archive 選項的基本概念。讓我們探索另一個可以傳遞給命令以進一步改變輸出的選項。

--prefix=<prefix>/

我們使用 prefix 引數來附加我們存檔中所有檔案的路徑,以便於提取。

--remote=<repo>

這是我們想要建立遠端倉庫存檔的場景中的首選命令。執行命令時,我們必須包含遠端倉庫的 URL。

該命令還允許我們指向遠端倉庫中的 ref。

命令配置

git archive 命令遵循以下配置選項。

$ git config --global tar.umask

我們使用 unmask 配置來指定歸檔檔案的 Unix 級許可權位限制。

tar.<format>.command

我們使用上面的選項來建立一個自定義 shell 命令,它將執行我們的 git archive 輸出。這與將 stdout 流傳輸到自定義工具並省略 --output 選項相同。

此操作的基本概念是建立一個固定的定製存檔後處理工具。

tar.<format>.remote

我們可以啟用上面的選項以允許遠端開發人員以指定的 格式 獲取檔案。

簡而言之,我們使用 git archive 命令生成 Git 倉庫的可分發包。我們可以使用此命令定位特定的樹、分支或提交。

它還具有多種輸出格式以增加壓縮。

作者: 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