我正在使用 git archive 创建一个带有最新版本/HEAD 的 zip 文件,但想将分支名称和提交添加到 zip 文件名。我怎样才能做到这一点?
2 回答
您可以运行此脚本:
#!/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
除了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.