我正在为构建过程添加版本号。对于在开发人员计算机上构建的版本,我想知道工作空间是否包含可能已包含在构建中的更改,并将SHA1后缀为-dirty
。
例如:
c2bc0d223739c841c5e810c6c439562aa9d67f5f
c2bc0d223739c841c5e810c6c439562aa9d67f5f-dirty
第一种形式可以通过以下方式获得:
git rev-parse HEAD
但是,当工作空间变脏时,我无法确定如何附加-dirty
后缀。 git describe
提供了此功能,但仅限于标记名称。我们并没有真正使用标签(最后一次是400左右的修改),它们并不像SHA1那样具有决定性。
这可以在一个命令中完成,还是需要做一些bash脚本?
答案 0 :(得分:15)
您可以将--match
用于永远不会匹配的强制描述与任何标记不匹配的内容。这有点hackish但它的确有效:
git describe --match=NeVeRmAtCh --always --abbrev=40 --dirty