[英]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.