Git Archive 如何导出 git 项目
有时,创建 Git 存储库的存档文件会很有用。存档文件将多个文件合并为一个文件。然后可以提取存档文件来重现单个文件。Git 在保存历史和团队协作方面非常强大;然而,归档文件消除了 Git 元数据的开销,并且可以更简单地分发给其他用户或长期保存在库中。
git archive 有什么作用?
git archive
是一个 Git 命令行应用程序,它将从指定的 Git 引用(如commit、分支或tree)创建存档文件。git archive后面可以跟上改变存档输出的附加参数。
Git 导出示例
一个最基本的git archive例子如下
$ git archive --format=tar HEAD
执行此命令时,将从HEAD
存储库的当前引用创建存档。默认情况下,git archive将存档传输到临时标准输出流。我们需要将此输出流捕获并写到文件中。可以使用git archives --output
选项或使用操作系统标准输出重定向来指定永久文件
$ git archive --output=/root/archives/jyphp.tar --format=tar HEAD
上面的示例创建了未压缩的存档。这由--format=tar
选项指定。 format 还接受压缩文件格式zip和tar.gz. 传递这些格式选项之一将生成压缩存档。
如果没有指定格式值,将从--output 指定的文件名进行推断。
$ git archive --output=/root/archives/jyphp.tar.gz --format=tar HEAD ./build
此示例将./build路径参数添加到存档命令。此命令将输出仅包含存储在./build目录下的文件的存档
选项
前面的示例演示了一些最常用的git-archive
用法。以下是可以传递给git-archive的一些选项
--prefix=<prefix>/
prefix
选项为存档中的每个文件添加路径。这有助于确保在唯一的命名空间中提取存档内容。
--remote=<repo>
remote
选项需要远程存储库 URL。当指定 remote 选项时,git-archive将获取远程存储库并从指定的 ref 创建一个存档(如果它在远程可用)。
配置
git archive 默认会使用一些全局 Git 配置值。可以使用 [git config][link to git config]
应用程序设置这些值。
tar.umask
unmask
配置选项用于指定对输出存档文件的 unix 级别权限位限制。
tar.<format>.command
此配置选项允许指定git-archive
将运行输出的自定义 shell 命令。
tar.<format>.remote
如果启用,这将允许远程客户端获取指定的format类型的档案。