4

我正在使用 git archive 创建一个带有最新版本/HEAD 的 zip 文件,但想将分支名称和提交添加到 zip 文件名。我怎样才能做到这一点?

4

2 回答 2

3

您可以运行此脚本:

#!/bin/sh
sha1=`git rev-parse --short --verify HEAD`
branch=`git symbolic-ref -q --short HEAD`

git archive -o latest_${branch}_${sha1}.zip HEAD

调用它git-auto-archive,例如,使其可执行,放入你的路径,然后运行它

git auto-archive
于 2013-02-20T17:30:43.260 回答
0

除了CharlesB脚本之外,请确保使用 Git 2.20+(Q4 201),因为如果用于repo ,git archive -o latest_${branch}_${sha1}.zip可以生成tar文件而不是 zip 文件(已修复的错误)。--remote

请参阅Josh Steadmon (``)的提交 00436bf(2018 年 10 月 25 日) 。 帮助者:Jeff King ( )(由Junio C Hamano 合并——提交 a5ab66e中,2018 年 11 月 6 日)
peff
gitster

归档:提前初始化归档器

运行时尽快初始化归档器git archive
各种非显而易见的行为取决于存档器的初始化,例如从提供的文件名确定所需的存档格式。

Since 08716b3 ("archive: refactor file extension format-guessing", 2011-06-21, Git v1.7.7-rc0), archive_format_from_filename() has used the registered archivers to match filenames (provided via --output) to archival formats.

However, when git archive is executed with --remote, format detection happens before the archivers have been registered.
This causes archives from remotes to always be generated as TAR files, regardless of the actual filename (unless an explicit --format is provided).

This patch fixes that behavior; archival format is determined properly from the output filename, even when --remote is used.

于 2018-11-11T01:43:22.123 回答