?
Dokumen ini menggunakan Manual laman web PHP Cina Lepaskan
git-archive - 從命名樹創(chuàng)建文件的存檔
git archive [--format=<fmt>] [--list] [--prefix=<prefix>/] [<extra>] [-o <file> | --output=<file>] [--worktree-attributes] [--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish> [<path>…]
創(chuàng)建包含指定樹的樹結構的指定格式的存檔,并將其寫入標準輸出。如果指定了<前綴>,則它將預置為歸檔文件中的文件名。
git archive
在給定樹ID時,與給定提交ID或標簽ID時的行為不同。在第一種情況下,當前時間用作檔案中每個文件的修改時間。在后一種情況下,將使用記錄在所引用的提交對象中的提交時間。此外,如果使用tar格式,提交ID將存儲在全局擴展pax標頭中; 它可以使用提取git get-tar-commit-id
。在ZIP文件中,它被存儲為文件注釋。
--format=<fmt>
結果存檔的格式:tar
或zip
。如果沒有給出這個選項,并且指定了輸出文件,那么如果可能的話,從文件名中推斷格式(例如,寫入“foo.zip”使得輸出為zip格式)。否則,輸出格式是tar
。
-l --list
顯示所有可用的格式。
-v --verbose
將進展報告給stderr。
--prefix=<prefix>/
在檔案中的每個文件名前加上<prefix> /。
-o <file> --output=<file>
將存檔寫入<file>而不是stdout。
--worktree-attributes
在工作樹中查找.gitattributes文件中的屬性(請參閱ATTRIBUTES)。
<extra>
這可以是存檔器后端了解的任何選項。請參閱下一節(jié)。
--remote=<repo>
無需從本地存儲庫創(chuàng)建tar歸檔文件,可以從遠程存儲庫中檢索tar歸檔文件。請注意,遠程存儲庫可能會限制允許使用哪個sha1表達式<tree-ish>
。有關詳細信息,請參閱git-upload-archive [1]。
--exec=<git-upload-archive>
與--remote一起用于指定git-upload-archive
遠程端的路徑。
<tree-ish>
該樹或承諾生成一個檔案。
<path>
如果沒有可選的路徑參數(shù),則當前工作目錄的所有文件和子目錄都將包含在歸檔中。如果指定了一個或多個路徑,則只包含這些路徑。
-0
存儲文件而不是縮小它們。
-9
最高和最低的壓縮級別。您可以指定1到9之間的任何數(shù)字來調(diào)整壓縮速度和比率。
tar.umask
這個變量可以用來限制tar歸檔項的權限位。默認值是0002,這將關閉世界寫入位。特殊值“user”表示將使用歸檔用戶的umask。有關詳細信息,請參閱umask(2)。如果--remote
使用,則只有遠程存儲庫的配置才會生效。
tar.<format>.command
該變量指定一個shell命令,通過該命令應該通過其管理生成的tar輸出git archive
。該命令使用帶有標準輸入上生成的tar文件的shell來執(zhí)行,并且應該在其標準輸出上生成最終輸出。任何壓縮級別選項都將傳遞給命令(例如“-9”)。<format>
如果沒有給出其他格式,則具有相同擴展名的輸出文件將使用此格式。
“tar.gz”和“tgz”格式是自動定義的,默認為gzip -cn
。您可以使用自定義命令覆蓋它們。
tar.<format>.remote
如果為true,則<format>
通過git-upload-archive [1]為遠程客戶端啟用。對于用戶定義的格式,默認為false,但對于“tar.gz”和“tgz”格式則為true。
export-ignore
帶有export-ignore屬性的文件和目錄不會被添加到歸檔文件中。有關詳細信息,請參閱gitattributes [5]。
export-subst
如果將屬性export-subst設置為文件,那么在將該文件添加到存檔時,Git將展開多個占位符。有關詳細信息,請參閱gitattributes [5]。
請注意,屬性默認取自.gitattributes
正在歸檔的樹中的文件。如果你想調(diào)整事實后產(chǎn)生輸出的方式(例如,你沒有在其中添加一個適當?shù)膃xport-ignore,.gitattributes
就.gitattributes
提交),根據(jù)需要調(diào)整檢出的文件并使用--worktree-attributes
選項。或者,您可以保留在歸檔$GIT_DIR/info/attributes
文件中的任何樹時應用的必要屬性。
git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)
創(chuàng)建一個包含當前分支上最新提交內(nèi)容的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版本創(chuàng)建一個壓縮tarball。
git archive --format=tar.gz --prefix=git-1.4.0/ v1.4.0 >git-1.4.0.tar.gz
同上,但使用內(nèi)置的tar.gz處理。
git archive --prefix=git-1.4.0/ -o git-1.4.0.tar.gz v1.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發(fā)行版創(chuàng)建壓縮tarball,但沒有全局擴展pax標頭。
git archive --format=zip --prefix=git-docs/ HEAD:Documentation/ > git-1.4.0-docs.zip
將所有內(nèi)容放入當前頭文件/目錄中git-1.4.0-docs.zip
,并加上前綴git-docs/
。
git archive -o latest.zip HEAD
創(chuàng)建一個Zip存檔,其中包含當前分支上最新提交的內(nèi)容。請注意,輸出格式是由輸出文件的擴展名推斷的。
git config tar.tar.xz.command "xz -c"
配置一個“tar.xz”格式來制作LZMA壓縮的tarfiles。您可以使用它來指定--format=tar.xz
或創(chuàng)建一個輸出文件-o foo.tar.xz
。