如何启用一个Git仓库的IDENT字符串?如何启用一个Git仓库的IDENT字符串?(How do

2019-05-08 17:25发布

如何启用ident $Id$在一个Git仓库上的文件?

Answer 1:

摘要:在产品中嵌入的版本信息的推荐方法是使用构建系统是什么; 参阅下面的详细信息和替代方法。


在Git的(我认为通常也符合原子提交其他VCS系统),有喜欢单个文件的版本没有这样的事情。

Git的不支持的按需扩展的$Id:$关键字,但是:

  1. 它是只要求完成。 您必须指定(可能使用文件名匹配模式),文件(或文件集)具有ident 属性设置(在“.gitattributes'文件树,或者” git的/信息/属性对本地存储库设置) 。
  2. 它扩展为SHA-1的文件的内容 (或者更精确地说,以$Id:<sha-1 of blob>$ )。 这样做的原因选择是Git不会触及该分支开关或后退过程中未更改的文件; 如果“$编号:$”扩展到修订信息这需要切换分支时更新每个版本控制的文件,例如。

Git的支持相当广泛的一套$Format:...$它扩展到提交信息的占位符(如$Format:%H$通过提交哈希替换),但是:

  1. 运行时,扩展只是git的存档 ,在其输出文件。
  2. 要求进行,通过控制export-subst属性。

嵌入版本信息的推荐方法是通过构建系统 (在构建阶段)做到这一点; 例如见Git的Makefile文件和GIT-VERSION-GEN脚本的Git的Web界面的git.git库使用的Makefile。

但是,您可以(AB)用干净/涂抹过滤驱动程序(通过filter的属性),以获得类似CVS的关键字扩展,结账扩大关键字和清洁起来就进入内容库。



Answer 2:

您可以通过添加你想要这个功能,然后对哪些文件的模式做到这一点ident.gitattributes文件。 这将$ ID替换的$ id $:<40位SHA> $上的文件的签出。 请注意,虽然它不会给你的文件的版本号为CVS / SVN。

例:

$ echo '*.txt ident' >> .gitattributes
$ echo '$Id$' > test.txt
$ git commit -a -m "test"

$ rm test.txt
$ git checkout -- test.txt
$ cat test.txt

链接gitattributes(5)手册



Answer 3:

Git的IDENT没有做什么的$ id $确实在其他版本的系统。 作为一个杂牌,使用RCS用git一起:RCS为单个文件的修订和git检查点的项目作为一个整体。 正如我所说,这是个杂牌,但它确实有点道理(有时一些事情)。



文章来源: How do I enable the ident string for a Git repository?
标签: git ident