git - 在不归档的情况下将 Git SHA1 信息扩展到 checkin 中?

标签 git hash scientific-computing

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

我正在使用 git 作为修订控制进行科学编程,因此这种功能对于可重复性的原因非常有帮助(即,将 git 哈希自动包含在所有结果文件和图形中)。

最佳答案

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

如果你想把提交的SHA-1,没有开箱即用的解决方案,但你可以使用cleansmudge filter 的命令gitattribute .请注意,这会严重影响性能,因为在提交之后,每个 文件都必须修改以反射(reflect)所做的新提交。


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

关于git - 在不归档的情况下将 Git SHA1 信息扩展到 checkin 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2853188/

相关文章:

xcode - “pod install”没有将框架添加到我的 Xcode 项目中

git - 为什么 Git 在(理论上)忽略的文件(路径)上向我建议 "changes"?

c# - 在 C# 中生成 XML 文档哈希

hash - 生成文件的哈希值

python - python中物理量的命名

python - 比较 NumPy 与 NumPy+MKL 的性能

git - 错误 : git checkout-index: unable to create file (Permission denied)

algorithm - 散列对文本中的小变化稳定

algorithm - 线性局部嵌入残差方差 Matlab

python - Django项目中.gitignore文件应该放什么类型的文件