[TOC] #### 1. git archive 命令介绍 --- archive 翻译后是“存档,档案,把...归档”的意思 git archive 命令用于将 git 仓库中的文件归档为压缩包文件。可以指定分支、提交记录进行归档,归档内容可以是所有文件,也可以是指定文件,代码托管服务平台中的下载 zip 功能本质上就是使用的该命令 **当需要把远程仓库中某个分支(比如: dev 分支)打包发送给别人的时候,你是怎么操作的 ?** 方式一:登录代码托管平台,先切换到 dev 分支,再下载 ZIP 压缩包  方式二:使用 git archive 命令也可以对远程仓库中的 dev 分支进行打包 补充:打包某个提交记录的文件时,同理,只需要将分支名替换为提交记录对应的 commit id 即可 ``` git archive --remote=git@gitee.com:u1s1it/u1s1it.git dev -o u1s1it-dev.zip ``` #### 2. git archive 参数选项 --- `-l,--list` 查看支持的归档格式,有:tar、tgz、tar.gz、zip ``` git archive -l ``` `--format` 指定存档格式。省略该参数,并且指定了输出文件名时,会从文件名中推断格式,建议省略该选项 ``` git archive --format=zip git archive --format=tar ``` `-o, --output` 指定归档文件名,也就是压缩包名称 ``` # 命令格式 git archive -o <file> # 使用示例 git archive -o ../project.zip ``` `--remote` 从远程仓库检索进行存档。只支持 SSH 类型的远程地址,HTTP 类型不支持 ``` # 命令格式 git archive --remote=<repo> # 使用示例 git archive --remote=git@gitee.com:u1s1it/wechat-applet.git ``` #### 3. git archive 命令使用 --- 指定打包的内容。**指定打包内容** 和 **命令参数选项** 顺序没有前后之分,谁在前谁在后都可以 ``` # 根据指针指向归档 git archive HEAD [file1] [file2...] # 根据分支进行归档 git archive <branch> [file1] [file2...] # 使用示例 # 打包当前指针指向的提交记录下的所有文件 git archive HEAD # 打包当前指针指向的提交记录下的 README.md 文件 git archive HEAD README.md # 打包 master 分支 git archive master # 打包 master 分支下的 README.md 文件和 config 目录 git archive master README.md config ``` git archive 用法举例 ``` # 归档当前指针指向的版本库 git archive -o <path> HEAD # 从远程仓库归档指定分支 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 ```