簡體   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