导出 Git 项目

在本文中,我们将讨论在 Git 中导出项目。我们使用 git archive 命令来创建我们的 Git 仓库的存档文件。

这样的文件会将几个文件合并为一个。存档文件便于在开发人员之间共享或长期存储。

git archive 命令

它有什么作用?

我们使用 git archive 命令为指定的 ref 生成存档文件,例如提交、分支和树。该命令可以与其他参数一起使用来改变输出,如下所示。

Git 导出示例

让我们从一个基本的 git archive 命令开始。

$ git archive --format=tar HEAD

如果我们在终端上执行此命令,它将从我们仓库中的 HEAD 创建一个存档文件。存档将转到我们的临时 stdout 流。

我们可以指定一个永久文件,如下所示。

$ git archive --output=./sample_repo_archive.tar --format=tar HEAD

执行上述命令时,它将为我们的 HEAD 引用创建一个存档文件并将其存储在 sample_repo_archive.tar 文件中。 --format=tar 选项指示 Git 生成未压缩的存档输出。

我们可以将其他流行的格式,如 ziptar.gz 传递给我们的格式选项。如果我们不包含格式选项,Git 会处理指定的 --output 选项。

$ git archive --output=./sample_repo_archive.tar.gz --format=tar HEAD ./Updates

Git 还使归档我们仓库的部分成为可能。上面的命令将为我们仓库的 /.Updates 目录中的文件创建一个存档文件。

Git 存档使用选项

上面的示例为我们提供了最常用的 git archive 选项的基本概念。让我们探索另一个可以传递给命令以进一步改变输出的选项。

--prefix=<prefix>/

我们使用 prefix 参数来附加我们存档中所有文件的路径,以便于提取。

--remote=<repo>

这是我们想要创建远程仓库存档的场景中的首选命令。运行命令时,我们必须包含远程仓库的 URL。

该命令还允许我们指向远程仓库中的 ref。

命令配置

git archive 命令遵循以下配置选项。

$ git config --global tar.umask

我们使用 unmask 配置来指定归档文件的 Unix 级权限位限制。

tar.<format>.command

我们使用上面的选项来创建一个自定义 shell 命令,它将运行我们的 git archive 输出。这与将 stdout 流传输到自定义工具并省略 --output 选项相同。

此操作的基本概念是创建一个固定的定制存档后处理工具。

tar.<format>.remote

我们可以启用上面的选项以允许远程开发人员以指定的 格式 获取档案。

简而言之,我们使用 git archive 命令生成 Git 仓库的可分发包。我们可以使用此命令定位特定的树、分支或提交。

它还具有多种输出格式以增加压缩。