設定和配置
獲取和建立專案
基本快照
分支與合併
共享和更新專案
檢查和比較
打補丁
除錯
電子郵件
外部系統
伺服器管理
指南
管理
底層命令
- 2.46.1 → 2.52.0 無更改
-
2.46.0
2024-07-29
- 2.43.1 → 2.45.4 無更改
-
2.43.0
2023-11-20
- 2.40.1 → 2.42.4 無更改
-
2.40.0
2023-03-12
- 2.38.1 → 2.39.5 無更改
-
2.38.0
2022-10-02
- 2.37.1 → 2.37.7 無更改
-
2.37.0
2022-06-27
- 2.34.1 → 2.36.6 無更改
-
2.34.0
2021-11-15
- 2.29.1 → 2.33.8 無變更
-
2.29.0
2020-10-19
- 2.1.4 → 2.28.1 無更改
-
2.0.5
2014-12-17
概要
git archive [--format=<fmt>] [--list] [--prefix=<prefix>/] [<extra>]
[-o <file> | --output=<file>] [--worktree-attributes]
[--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish>
[<path>…]
描述
建立指定格式的歸檔檔案,其中包含命名樹的樹結構,並將其輸出到標準輸出。如果指定了 <prefix>,則它會新增到歸檔檔案中的檔名之前。
git archive 在提供樹 ID 時與提供提交 ID 或標籤 ID 時行為不同。當提供樹 ID 時,當前時間將用作歸檔檔案中每個檔案的修改時間。另一方面,當提供提交 ID 或標籤 ID 時,將使用所引用提交物件中記錄的提交時間。此外,如果使用 tar 格式,提交 ID 將儲存在全域性擴充套件的 pax 頭資訊中;可以使用 git get-tar-commit-id 提取。在 ZIP 檔案中,它儲存為檔案註釋。
選項
- --format=<fmt>
-
生成的歸檔檔案的格式。可能的值包括
tar、zip、tar.gz、tgz,以及使用配置選項tar.<format>.command定義的任何格式。如果未給出--format,並且指定了輸出檔案,則格式將根據檔名推斷(例如,寫入foo.zip會使輸出格式為zip格式)。否則,輸出格式為tar。 - -l
- --list
-
顯示所有可用格式。
- -v
- --verbose
-
向 stderr 報告進度。
- --prefix=<prefix>/
-
在歸檔檔案中,在路徑前新增 <prefix>/。可以重複指定;最右邊的值將用於所有被跟蹤的檔案。請參閱下方
--add-file使用的值。 - -o <file>
- --output=<file>
-
將歸檔檔案寫入 <file> 而不是 stdout。
- --add-file=<file>
-
將未跟蹤的檔案新增到歸檔檔案。可以重複指定以新增多個檔案。歸檔檔案中檔案的路徑透過連線在此
--add-file選項之前的最後一個--prefix選項的值(如果存在)和 <file> 的基本名稱來構建。 - --add-virtual-file=<path>:<content>
-
將指定的內容新增到歸檔檔案。可以重複指定以新增多個檔案。
<path> 引數可以以字面雙引號字元開頭和結尾;包含的檔名被解釋為 C 風格字串,即反斜槓被解釋為跳脫字元。如果路徑包含冒號,則必須引用路徑,以避免冒號被錯誤地解釋為路徑和內容之間的分隔符,或者如果路徑以雙引號字元開頭或結尾。
檔案模式限制為普通檔案,並且該選項可能受平臺相關命令列限制。對於非平凡的情況,請寫入一個未跟蹤的檔案並使用
--add-file代替。請注意,與
--add-file不同,在歸檔檔案中建立的路徑不受--prefix選項的影響,因為 <path> 的值可以是一個完整的路徑。 - --worktree-attributes
-
也在工作樹中的 .gitattributes 檔案中查詢屬性(請參閱 屬性)。
- --mtime=<time>
-
設定歸檔條目的修改時間。如果沒有此選項,如果 <tree-ish> 是提交或標籤,則使用提交者時間;如果是樹,則使用當前時間。
- <extra>
-
這可以是歸檔後端理解的任何選項。請參閱下一節。
- --remote=<repo>
-
不是從本地儲存庫建立 tar 歸檔,而是從遠端儲存庫檢索 tar 歸檔。請注意,遠端儲存庫可能對 <tree-ish> 中允許的 sha1 表示式有限制。有關詳細資訊,請參閱 git-upload-archive[1]。
- --exec=<git-upload-archive>
-
與 --remote 一起使用,用於指定遠端端的 git-upload-archive 的路徑。
- <tree-ish>
-
用於生成歸檔檔案的樹或提交。
- <path>
-
如果沒有可選的路徑引數,則將當前工作目錄的所有檔案和子目錄包含在歸檔檔案中。如果指定了一個或多個路徑,則只包含這些路徑。
配置
- tar.umask
-
此變數可用於限制 tar 歸檔條目的許可權位。預設值為 0002,這將關閉全域性寫入位。特殊值“user”表示將使用歸檔使用者的 umask。有關詳細資訊,請參閱 umask(2)。如果使用
--remote,則僅遠端儲存庫的配置生效。 - tar.<format>.command
-
此變數指定一個 shell 命令,透過該命令,由
gitarchive生成的 tar 輸出將被管道傳輸。該命令使用 shell 執行,生成的 tar 檔案在標準輸入上,並且應在其標準輸出上生成最終輸出。任何壓縮級別選項都將傳遞給該命令(例如,-9)。tar.gz和tgz格式是自動定義的,並且預設使用魔術命令gitarchivegzip,該命令呼叫 gzip 的內部實現。 - tar.<format>.remote
-
如果為 true,則啟用該格式,以便透過 git-upload-archive[1] 供遠端客戶端使用。使用者定義的格式預設為 false,但
tar.gz和tgz格式為 true。
屬性
- export-ignore
-
具有 export-ignore 屬性的檔案和目錄不會被新增到歸檔檔案中。有關詳細資訊,請參閱 gitattributes[5]。
- export-subst
-
如果為某個檔案設定了 export-subst 屬性,則 Git 在將該檔案新增到歸檔檔案時會擴充套件幾個佔位符。有關詳細資訊,請參閱 gitattributes[5]。
請注意,屬性預設取自正在歸檔的樹中的 .gitattributes 檔案。如果您想在事後調整輸出的生成方式(例如,您提交時未在 .gitattributes 中新增適當的 export-ignore),請根據需要調整已簽出的 .gitattributes 檔案,並使用 --worktree-attributes 選項。或者,您可以將適用於歸檔任何樹的必要屬性保留在 $GIT_DIR/info/attributes 檔案中。
示例
- git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)
-
建立一個 tar 歸檔檔案,其中包含當前分支上最新提交的內容,並將其提取到
/var/tmp/junk目錄中。 - git archive --format=tar --prefix=git-1.4.0/ v1.4.0 | gzip >git-1.4.0.tar.gz
-
為 v1.4.0 版本建立壓縮的 tarball。
- git archive --format=tar.gz --prefix=git-1.4.0/ v1.4.0 >git-1.4.0.tar.gz
-
與上面相同,但使用內建的 tar.gz 處理。
gitarchive--prefix=git-1.4.0/-ogit-1.4.0.tar.gzv1.4.0-
與上面相同,但格式是從輸出檔案中推斷出來的。
- git archive --format=tar --prefix=git-1.4.0/ v1.4.0^{tree} | gzip >git-1.4.0.tar.gz
-
為 v1.4.0 版本建立壓縮的 tarball,但沒有全域性擴充套件的 pax 頭資訊。
- git archive --format=zip --prefix=git-docs/ HEAD:Documentation/ > git-1.4.0-docs.zip
-
將當前 HEAD 的 Documentation/ 目錄中的所有內容放入 git-1.4.0-docs.zip,並加上 git-docs/ 字首。
gitarchive-olatest.zipHEAD-
建立包含當前分支上最新提交內容的 Zip 歸檔檔案。請注意,輸出格式是透過輸出檔案的副檔名推斷出來的。
gitarchive-olatest.tar--prefix=build/--add-file=configure--prefix=HEAD-
建立一個 tar 歸檔檔案,其中包含當前分支上最新提交的內容(無字首)以及未跟蹤檔案 configure(字首為 build/)。
gitconfigtar.tar.xz.command"xz-c"-
配置用於建立 LZMA 壓縮 tar 檔案的“tar.xz”格式。您可以透過指定
--format=tar.xz來使用它,或者透過建立類似-ofoo.tar.xz的輸出檔案來使用。