Close

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 徽标
相关资料

Git 速查表

Bitbucket 徽标
查看解决方案

了解 Bitbucket Cloud 的 Git

接下来的示例将创建一个新的归档并将其存储在 exmaple_repo_archive.tar 文件中。前面的示例都创建了未压缩的归档输出。这由 --format=tar 选项表示。格式选项还接受流行的压缩文件格式 ziptar.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 的持续更新。

人们通过满是工具的墙进行协作

Bitbucket 博客

Devops 示意图

DevOps 学习路径

与 Atlassian 专家一起进行 Den 功能演示

Bitbucket Cloud 与 Atlassian Open DevOps 如何协同工作

注册以获取我们的 DevOps 新闻资讯

Thank you for signing up