在 Git 存储库中为单个文件存储自定义元数据

8
我正在使用Git存储库,并希望定义自定义属性以应用于存储库中的每个文件。这些属性可以在每个提交时更新。理想情况下,这些属性应该易于搜索并最终可导出。
在Git中是否有简单的方法来实现这一点?我已经研究了Git注释,但据我所知,它是按提交而不是按文件进行的。
谢谢。

你能详细说明这些属性的性质是什么吗? - Tim Biegeleisen
@TimBiegeleisen,这些属性基本上是存储在每个文件中的一些自定义键值对。确切的属性尚未确定,因为我想先确认我想要的是否可行。例如名称、上下文、标签、目的等都是潜在的属性。但这些属性始终是字符串。 - user5754
2个回答

7

实际上,您可以使用 git notes

添加、删除或读取附加到对象的注释,而不触及对象本身。

对象也包括单个文件。如this answer所述,您可以使用git ls-tree HEAD列出当前HEAD中的文件,然后使用git notes add -m "Some text, key-value pairs maybe?" <hash of the file>添加注释。要查看以后的注释,请使用git notes show <hash of the file>

明显的缺点是,当您更改文件内容时,哈希值会发生变化。您需要编写自己的脚本来遍历文件历史记录并打印所有注释。


3

很抱歉,没有内置功能。

您可以将具有自定义名称的属性放入.gitattributes中,但与仅将数据放置在更成熟的格式(如json或xml)的一个或多个文件中并将这些文件与您的项目一起提交相比,可能不会带来太多好处。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接