如何将Git版本历史嵌入到源代码中?

如何将Git版本历史嵌入到源代码中?,git,version,history,version-control-keywords,Git,Version,History,Version Control Keywords,因此,有一些问题与如何让Git自动附加文件更改细节(例如作者、日期、版本号、更改的简短描述等)有关,这些问题与RCS/CVS和大多数其他系统中使用的关键字/标记/哈希类似。没有明确的答案,如何做到这一点-主要是有警告不要这样做 我确实意识到,使用Git自己的历史记录方法获得相同的信息是可能的,但在现实生活中,当程序员习惯了旧方法时,将文件的版本历史记录嵌入到文件头中只会使生活更轻松 问题:在提交阶段,如何将更改信息自动插入到文件头中 我仍然不明白,为什么(在需求管理方面)这个特性一开始没有被指定

因此,有一些问题与如何让Git自动附加文件更改细节(例如作者、日期、版本号、更改的简短描述等)有关,这些问题与RCS/CVS和大多数其他系统中使用的关键字/标记/哈希类似。没有明确的答案,如何做到这一点-主要是有警告不要这样做

我确实意识到,使用Git自己的历史记录方法获得相同的信息是可能的,但在现实生活中,当程序员习惯了旧方法时,将文件的版本历史记录嵌入到文件头中只会使生活更轻松

问题:在提交阶段,如何将更改信息自动插入到文件头中

我仍然不明白,为什么(在需求管理方面)这个特性一开始没有被指定到Git中

因为您应该从Git本身获取信息,而不是从文件内容(由Git管理)获取信息

话虽如此,我已经看到了其他方法,比如生成一个文件将包含您需要的所有Git元数据(在所有提交之后完成),并打包到可交付成果中,这意味着:

  • 不是源(由Git管理)
  • 但最终的结果是汇编产生的源代码

这样,您的最终程序在执行过程中仍然可以访问这些元数据。

这是不可能的,因为(a)在创建提交之前,它的散列是未知的,(b)一旦知道提交的散列,在不更改散列的情况下,您无法更改提交中的任何文件。好的,谢谢你明确的回答。现在我明白了,为什么(技术上)它不起作用,但我仍然不明白,为什么(需求管理方面)这个特性没有首先指定到Git中。下一步,我将不得不使用涂抹/清除脚本。谢谢