使用提交哈希将自述文件添加到“git archive”

时间:2017-10-26 21:30:47

标签: git

向客户发布代码版本时,了解代码副本的具体提交会很有帮助。是否可以使用'git archive'让生成的.zip文件包含readme.txt或其他一些指示器,显示所使用的提交的哈希值?

从Mercurial移植后,我对git相对较新。在Hg生成存档时,zip将包含一个hg_archive.txt,其中的哈希值确切地指示了存档的生成位置。

由于

3 个答案:

答案 0 :(得分:4)

它已经存在了。见https://git-scm.com/docs/git-archive

  

在ZIP文件中,提交ID存储为文件注释。

答案 1 :(得分:2)

你可以传递git archive一个filename参数,你可以在其中包含短(或长)哈希作为文件名的一部分:

git archive -o "myrelease-$(git rev-parse --short HEAD).zip" HEAD

会给你一个文件名" myrelease-f12cb0d.zip"

如果您想要更复杂的内容,例如添加自述文件,您可能想要创建一个bash脚本,该脚本都使用当前哈希创建文件并为您创建存档。

#!/bin/bash
git rev-parse --short HEAD > version.txt
tar . . .

答案 2 :(得分:0)

我不认为有一种原生方式可以添加文件来描述它,但我不知道为什么不亲自手动操作,如果它对您的项目有重要意义。

通常这不使用,因为它与版本有点多余(特别是某种形式的语义版本控制)。版本号可能比最终消费者的提交哈希更具可读性和意义。在Git中,您通常使用标记标记版本,这些标记用作指向某些提交的指针。

因此,拥有一个名为project-v0.1.2.tar.gz的存档就足以找到提交(即,在其他可能的命令中):

$ git log -1 v0.1.2
0041db8e225cd1a8390509ceef3d162238983f94 (tag: v0.1.2) Commit description