导出 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 生成未压缩的存档输出。
我们可以将其他流行的格式,如 zip
和 tar.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 仓库的可分发包。我们可以使用此命令定位特定的树、分支或提交。
它还具有多种输出格式以增加压缩。