GIT 如何在文件中注入提交信息以便 during/after 推送到远程?

GIT how to inject commit infomation inside a file so that during/after push to remote?

我们的任务是在提交的文件中注入提交信息,例如提交者、提交日期和作者姓名。

经过一些搜索和这个线程 How can I populate the Git commit ID into a file when I commit? 我们使用关键字扩展和格式占位符实现了对文件的注入。但是,信息是在结帐或存档后注入的。

是否可以在推送期间或之后将提交信息注入文件,以便远程文件包含该提交信息?我们意识到这听起来像是不必要的工作,但我们想知道执行此要求的可能性。

你不能这样做,因为提交 ID 实际上是根据整个存储库快照(所有文件)计算的 SHA-1 哈希值,还包括你要写入该提交 ID 的文件(这会更改文件,因此也会更改提交 ID).

另外,将任何关于提交的信息存储到文件中对于 git 已经做的事情来说是多余的,而且没有多大意义。如果您在问题 为什么 中多解释一下您要这样做,将会有所帮助。

如果您只是希望此信息在某处可见(例如,将某些可部署工件固定到源存储库中的提交),您实际上不需要提交它,只需调用 git 并询问它当前的 HEAD 提交属性并将它们构建到二进制工件中。