我们如何在每次推送时使用git更改版本(每个+1)?
例如我有一个2 php文件
libs/lib1.php
libs/lib2.php
Run Code Online (Sandbox Code Playgroud)
在每个标题上通常都有一些信息
/**
* LIB1.PHP
* this libs does something like this
* and that this is a doc for you
* @version 145
* @todo something todo
* @author DAMS
*/
/**
* LIB2.PHP
* this libs does something like this
* and that this is a doc for you
* @version 445
* @todo something todo
* @author DAMS
*/
Run Code Online (Sandbox Code Playgroud)
每次推送时我们可以搜索并添加+1版本吗?
Lau*_*ves 13
您要求的主要是关键字扩展.首先,看一下Git FAQ问题" git是否有关键字扩展? ".它说:
不建议使用关键字扩展.关键字扩展会导致各种奇怪的问题,并且无论如何都不是很有用,特别是在SCM的上下文中.您可以使用自定义脚本在git之外执行关键字扩展.Linux内核导出脚本执行此操作以在Makefile中设置EXTRA_VERSION变量.
如果你真的想这样做,请参阅gitattributes(5).如果您的翻译不可逆(例如SCCS关键字扩展),这可能会有问题.(提示:所提供的$ id $ -expansion把40个字符的十六进制BLOB对象名称到ID,你可以找出哪些承诺在使用类似的脚本包括该BLOB 这个.)
所以git确实有类似关键字扩展的东西,但不建议这样做.Git也没有"文件修订版"的概念(这就是你的@version编号所示),所以这不能完全满足你的要求.
您也可以创建一个钩子(可能是一个预接收挂钩?),它会为您增加版本.这只是一个可执行文件(所以它可以是一个shell/Python/Perl/Ruby /无论你喜欢哪种脚本),当你进行推送时它会自动执行.请参阅githooks手册页.
您的钩子脚本将:
@version \d+请注意,这至少与使用Git FAQ建议的关键字扩展一样糟糕,可能更糟糕.这可能会导致恼人的合并冲突.您也可能很容易在代码中使用误导性的版本号,特别是如果您必须将错误修正提交到旧版本,尽管每当您合并来自多个repos /分支的更改时,它可能也会发生(这在大多数情况下很常见) git工作流程)如果你不小心.
| 归档时间: |
|
| 查看次数: |
5166 次 |
| 最近记录: |