将Git SHA1信息扩展为签入而不归档?

Tim*_*Lin 5 git hash scientific-computing

有没有办法在每次提交时在文件中包含git commit哈希?我只能在归档期间找到如何执行此操作,但我无法找到如何为每次提交执行此操作.

我正在使用git作为修订控件进行科学编程,因此这种功能对于重现性原因非常有用(即,git hash会自动包含在所有结果文件和数字中).

Jak*_*ski 2

您可以使用keywork 和gitattribute轻松放置文件的 SHA-1 (更准确地说是 blob 的 SHA-1,即文件内容的 SHA-1)。$Id$ident

如果你想放置commit的 SHA-1 ,没有现成的解决方案,但你可以使用gitattributeclean的和smudge命令。请注意,这会严重影响性能,因为提交后必须修改每个文件以反映新的提交。filter


尽管正如这个问题的其他答案中所说,在构建时,您最好在生成的文件中嵌入版本号,例如 Linux 内核和 git 项目本身就是这样做的。