向客户发布代码版本时,了解代码副本的具体提交会很有帮助。是否可以使用'git archive'让生成的.zip文件包含readme.txt或其他一些指示器,显示所使用的提交的哈希值?
从Mercurial移植后,我对git相对较新。在Hg生成存档时,zip将包含一个hg_archive.txt,其中的哈希值确切地指示了存档的生成位置。
由于
答案 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