Git 归档:如何导出 Git 项目
有时,创建 Git 存储库的归档文件可能很有用。归档文件将多个文件合并为一个文件。然后可以提取归档文件以重现各个文件。Git 在保存历史记录和团队协作方面非常强大,但是,归档文件消除了 Git 元数据的开销,可以更轻松地分发给其他用户或长期保存在冷存储中。
git 归档是做什么的?
git archive
命令是一个 Git 命令行实用程序,它将根据指定的 Git 引用(如提交、分支或树)创建归档文件。git archive
接受额外的参数,这些参数会改变归档输出。
Git 导出示例
下面是一个最基本的 ~git archive~
示例
git archive --format=tar HEAD
此命令在执行时将从存储库的当前 HEAD
引用创建归档。默认情况下,git archive
会将归档输出流传输到临时的 stdout 流。您需要将此输出流捕获到永久文件中。您可以使用 git archives
输出选项或使用操作系统的 stdout 重定向来指定永久文件。
git archive --output=./example_repo_archive.tar --format=tar HEAD
相关资料
Git 速查表
查看解决方案
了解 Bitbucket Cloud 的 Git
接下来的示例将创建一个新的归档并将其存储在 exmaple_repo_archive.tar
文件中。前面的示例都创建了未压缩的归档输出。这由 --format=tar
选项表示。格式选项还接受流行的压缩文件格式 zip
和 tar.gz
。传递其中一个格式选项将生成压缩归档。如果未传递格式值,则将从传递的任何 --output
选项中推断出该值。
git archive --output=./example_repo_archive.tar.gz --format=tar HEAD ./build
可以通过传递路径参数来创建存储库的部分存档。本示例增加了一个 ./build
路径参数至归档命令。此命令将输出一个仅包含存储在 ./build
目录下文件的归档
选项
前面的示例演示了一些最常用的 git-archive
用例。以下是可以传递给 git-archive
的扩展选项。
--prefix=<prefix>/
前缀选项为归档中的每个文件添加了路径。这有助于确保在唯一的命名空间中提取归档内容。
--remote=<repo>
远程选项需要远程存储库网址。使用远程存储库选项调用时,git-archive
将获取远程存储库并从指定的引用中创建归档(如果该归档在远程上可用)。
配置
~git archive~ 会遵守几个全局 Git 配置值。这些值可以使用 git config 实用程序进行设置。
tar.umask
取消屏蔽配置选项用于指定输出归档文件的 unix 级别权限位限制。
tar.<format>.command
此配置选项允许指定自定义 shell 命令,git-archive
输出将通过该命令运行。这类似于省略 --output
选项,并将 stdout 流从 ~git archive~ 传送到自定义工具。这样可以实现固定的自定义归档后处理。
tar.<format>.remote
如果启用,则允许远程客户端获取类型为 format
的归档。
Git 归档摘要
Git 归档是一个有用的工具,可用于创建 git 存储库的可分发软件包。Git 归档可以定位存储库的特定引用,并且只能打包该引用的内容。Git 归档有几种输出格式,可以利用增加的压缩率。
分享此文章
下一主题
推荐阅读
将这些资源加入书签,以了解 DevOps 团队的类型,或获取 Atlassian 关于 DevOps 的持续更新。