git:如何从blob ID中查找文件历史记录



我正在尝试用git复制Subversion的$Id: $功能。我知道我可以使用.gitattributes来设置ident属性,这将允许我将blobID嵌入到源代码注释中。这是基本要求,我也有保障。

但我正在努力想办法让ID在实际意义上有用。git loggit blame需要一个文件名,所以我不能将ID与它们一起使用。git show只显示blob内容,但不提供任何提交链接。

我想要的是,给定一个blob ID,获得创建该blob的提交。(最终,获取文件的git loggit blame数据,或者能够检出包含该文件的修订版)。

我理解git这样的分布式系统中的提交历史比颠覆更复杂,但如果我能从任何方面入手,那就足够了。我真正需要的是能够证明,给定源代码,我可以追溯到版本控制历史。

git标记命令怎么样?检查此链接作为起点:

https://git-scm.com/book/en/v2/Git-Basics-Tagging

除了blob-id,gitattributes手册还描述了export-subst过滤器,因此您可以打开它并使用$Format:%H$添加提交哈希,或者使用$Format:%d$包括分支/标记名称。您必须使用git archive来释放这些文件。

例如:

$ cat .gitattributes
* export-subst ident
$ cat foo.c
// Blob hash: $Id$
// Commit hash: $Format:%H%d$
$ git archive master | tar -xO
* export-subst ident
// Blob hash: $Id: 9e0569a55a4eaacdf8d100a2c3d3654cf767650b $
// Commit hash: 3802b7884faf182ce0994ac9d94925dad375be05 (HEAD -> master, tag: v2)

相关内容

  • 没有找到相关文章

最新更新