[TOC] #### 1. git archive 命令介紹 --- archive 翻譯后是“存檔,檔案,把...歸檔”的意思 git archive 命令用于將 git 倉(cāng)庫(kù)中的文件歸檔為壓縮包文件??梢灾付ǚ种?、提交記錄進(jìn)行歸檔,歸檔內(nèi)容可以是所有文件,也可以是指定文件,代碼托管服務(wù)平臺(tái)中的下載 zip 功能本質(zhì)上就是使用的該命令 **當(dāng)需要把遠(yuǎn)程倉(cāng)庫(kù)中某個(gè)分支(比如: dev 分支)打包發(fā)送給別人的時(shí)候,你是怎么操作的 ?** 方式一:登錄代碼托管平臺(tái),先切換到 dev 分支,再下載 ZIP 壓縮包 ![](https://img.itqaq.com/art/content/984b7c99cf884eaa0bc857efeba2ac46.png) 方式二:使用 git archive 命令也可以對(duì)遠(yuǎn)程倉(cāng)庫(kù)中的 dev 分支進(jìn)行打包 補(bǔ)充:打包某個(gè)提交記錄的文件時(shí),同理,只需要將分支名替換為提交記錄對(duì)應(yīng)的 commit id 即可 ``` git archive --remote=git@gitee.com:u1s1it/u1s1it.git dev -o u1s1it-dev.zip ``` #### 2. git archive 參數(shù)選項(xiàng) --- `-l,--list` 查看支持的歸檔格式,有:tar、tgz、tar.gz、zip ``` git archive -l ``` `--format` 指定存檔格式。省略該參數(shù),并且指定了輸出文件名時(shí),會(huì)從文件名中推斷格式,建議省略該選項(xiàng) ``` git archive --format=zip git archive --format=tar ``` `-o, --output` 指定歸檔文件名,也就是壓縮包名稱 ``` # 命令格式 git archive -o <file> # 使用示例 git archive -o ../project.zip ``` `--remote` 從遠(yuǎn)程倉(cāng)庫(kù)檢索進(jìn)行存檔。只支持 SSH 類型的遠(yuǎn)程地址,HTTP 類型不支持 ``` # 命令格式 git archive --remote=<repo> # 使用示例 git archive --remote=git@gitee.com:u1s1it/wechat-applet.git ``` #### 3. git archive 命令使用 --- 指定打包的內(nèi)容。**指定打包內(nèi)容** 和 **命令參數(shù)選項(xiàng)** 順序沒(méi)有前后之分,誰(shuí)在前誰(shuí)在后都可以 ``` # 根據(jù)指針指向歸檔 git archive HEAD [file1] [file2...] # 根據(jù)分支進(jìn)行歸檔 git archive <branch> [file1] [file2...] # 使用示例 # 打包當(dāng)前指針指向的提交記錄下的所有文件 git archive HEAD # 打包當(dāng)前指針指向的提交記錄下的 README.md 文件 git archive HEAD README.md # 打包 master 分支 git archive master # 打包 master 分支下的 README.md 文件和 config 目錄 git archive master README.md config ``` git archive 用法舉例 ``` # 歸檔當(dāng)前指針指向的版本庫(kù) git archive -o <path> HEAD # 從遠(yuǎn)程倉(cāng)庫(kù)歸檔指定分支 git archive --remote=<repo> <branch> -o <path> # 使用示例 git archive -o ../project.zip HEAD git archive --remote=git@gitee.com:u1s1it/u1s1it.git master -o shop.zip ```