從 diff 生成規範的 commit 訊息
改完代碼要寫 commit,但不想花時間想措辭。
提示詞長度
196
tokens
建議模型
Flash
單次成本(離峰)
$0.00021
Flash
跑一萬次
$2.09
Flash 離峰
提示詞全文
根據下面的 diff 生成 commit 訊息。
diff:
```
{{git diff}}
```
格式(Conventional Commits):
```
<type>(<scope>): <簡述,50 字內,祈使句>
<正文:說明為什麼改,不是改了什麼>
<footer:關聯 issue,可選>
```
type 選擇:feat / fix / refactor / perf / docs / test / chore
要求:
- 簡述用祈使句(add 而不是 added)
- 正文解釋「為什麼」,因為「改了什麼」diff 已經說了
- 如果 diff 裡混了不相關的改動,指出來並建議拆成多個 commit
- 如果 diff 超過 500 行,說明這是個大改動,建議拆
另外給出:這個 commit 影響了哪些功能(方便寫 release note)
為什麼這樣寫
- 「正文解釋為什麼」是 commit 質量的分水嶺。多數人寫的正文只是複述 diff。
- 要求指出混合改動,能幫你拆出乾淨的 commit,日後 revert 更容易。
- 附帶「影響哪些功能」,等於順手產出 release note 素材。
成本
按上面這段提示詞估算(輸入 196 tokens、輸出 300 tokens)。輸出長度依任務而定,實際會有差異。
| 模型 | 單次(高峰) | 單次(離峰) | 1 萬次(高峰) | 1 萬次(離峰) |
|---|---|---|---|---|
| DeepSeek Flash | $0.00042 | $0.00021 | $4.19 | $2.09 |
| DeepSeek V4 Pro | $0.00145 | $0.00072 | $14.47 | $7.23 |
模型建議:commit 訊息是短文本模式化任務,Flash 完全夠用,且調用頻繁、成本敏感。
變體
- 要發版時,追加「把所有 commit 訊息汇总成 release note,按 feat/fix 分類」。
- 用中文團隊時,改成「簡述用中文,type 保留英文」。
常見失敗
- diff 太大時訊息會變得籠統,建議先拆分再生成。
- 不指定格式,會得到風格不統一的訊息。