繁体   English   中英

Git:如何在git log --pretty = format…中包括工作树状态?

[英]Git: How to include working tree status in git log --pretty=format…?

我在Eclipse CDT的预构建步骤中使用以下命令,生成一个头文件,其中包含我当前的短Git哈希作为字符串宏:

git log --pretty=format:'#define GIT_HASH_STRING "%h"' -n 1 > ../Inc/gitcommit.h

效果很好,但是它并不指示工作树的状态。 就像在运行git submodule status ,如果有工作树更改,我希望它吐出类似

a289542-dirty

这可能吗? 我检查了手册页中的git-log格式,但没有看到任何相关的内容。

上下文:通过嵌入式设备的CLI发出version命令时,将显示GIT_HASH_STRING宏。 如果我可以在字符串中包含-dirty标志,则可以作为警告,说明该设备正在运行未发行版本的固件,该版本与特定提交不符。

git log命令不检查工作树,因此它不能这样做。

有许多命令可以检查工作树。 一个简单的就是git describe

git describe --always --dirty

如果相对于当前提交修改了工作树或索引,则将打印出一个以-dirty结尾的字符串(即,在git status表示某些内容已暂存为提交或未暂存为提交的相同情况下) 。

如果还要检查子模块,则将需要更多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM