怎麼創建一個良好的Git提交資訊
提交資訊是對提交之前添加和更改的文件所做的更改的簡短描述。
良好的提交資訊不僅對你所參與的項目上其它的團隊成員很重要,對你自己而言也很重要,你需要跟蹤所有提交,並確切知道在提交期間發生的變動。
即使你開發的是個人項目,我也建議你開始養成編寫良好的提交資訊的習慣。
這是我慣用的格式(可以隨著你的個人習慣和公司來改變):
type: subject
body (可選)
footer (可選)
1. Type
- feat :新功能
- fix : bug修復
- docs :文檔變更
- style :與樣式相關的所有變動
- refactor :既不是bug修復也未添加功能的程式碼更改
- test :與測試有關所有變動
- chore :改變了構建任務,程式包管理器配置等
2. Subject
它應該包含對所做更改的簡短描述。長度不能超過50個字元,應以大寫字母開頭,命令式的語法。「Add」,而不是 「Added」 或 「Adds」。
3. Body
正文用於說明你進行了哪些更改以及進行更改的原因。並非所有提交都很複雜,需要一個正文,尤其是如果你僅是開發一個個人的項目,因此正文是可選的。
4. Footer
頁腳也是可選的,主要在你使用issue追蹤引用issue ID時使用。
這是Udacity學生git 提交資訊的例子Udacity Git Commit Message Style Guide
feat: 少於50個字元的更改概括。
如有必要,提供更詳細的說明文字,約72字元左右。在某些情況下,第一行被視為提交的主題,其餘文本作為正文。
將摘要與正文分開的空行至關重要(除非沒有正文);各種工具,例如 log,shortlog和rebase,如果同時運行兩者,可能會造成混亂。解釋該提交解決的問題。注意說明為什麼做這個更改(程式碼作了注釋)。另一方面,是否會導致負面的作用或其他不直觀的後果?這也是需要說明的地方。
空白行之後是其它段落。
– 項目要點也可以加進來
– 通常在項目符號前使用連字元或星號,用一個空格隔開,中間有空白行,但是約定在這裡變化如果你使用issue追蹤,可以在footer中寫上對issue的關聯,就像這樣:
Resolves: #123See
also: #456, #789
這是一個實際的例子:
docs: Fix typo in README.md
正文之外同樣有一些有意思的評論(歪果仁會玩啊):
簡短明了,感謝你的這篇文章!
我傾向於使用表情符號作為類型——一看就顯示了提交的類型,例如:
➕:heavy_plus_sign: 添加文件或實現功能時
🔨: hammer: 修復bug或處理issue時
💚 :green_heart: 在改進程式碼或注釋時
⚡:zap: 在提高性能時
📜:scroll: 更新文檔或readme時
🔑:key: 在處理安全相關時
🔁 :repeat: 更新依賴或數據時
✅:white_check_mark: 建立一個新的release時
👕:shirt: 重構或刪除linter警告時
❌:x: 刪除程式碼或文件時
…提交歷史看起來很棒:
我討厭別人這麼做。它在git日誌中看起來令人困惑。只需使用unicode表情符號,它們就可以在任何地方使用。
順便說一下,我最喜歡的表情符號用於提交資訊:🎆🎊🎉😖💢😅 (我通常將它們放在提交資訊的末尾)
我目前使用git alias創建帶有表情符號的漂亮提交消息,我的提交資訊結構如下:
[emoji] <type>(scope): <message>
例如:
🐞 FIX(pages): security issue fix on pages table
這是我的.gitconfig
# Git Commit, Add all and Push — in one step.
cap = "!f() { git commit -m \"$@\"; }; f"
# NEW.
new = "!f() { git cap \"📦 NEW($1): $2\"; }; f"
# IMPROVE.
imp = "!f() { git cap \"👌 IMPROVE($1): $2\"; }; f"
# UPDATE.
up = "!f() { git cap \"✍🏻 UPDATE($1): $2\"; }; f"
# FIX.
fix = "!f() { git cap \"🐞 FIX($1): $2\"; }; f"
# RELEASE.
rlz = "!f() { git cap \"🚀 RELEASE($1): $2\"; }; f"
# DOC.
doc = "!f() { git cap \"📖 DOC($1): $2\"; }; f"
# TEST.
tst = "!f() { git cap \"🤖 TEST($1): $2\"; }; f"
# BREAKING CHANGE.
brk = "!f() { git cap \"‼️ BREAKING CHANGES($1): $2\"; }; f"
# REMOVE
remove = "!f() { git cap \"🗑 REMOVE($1): $2\"; }; f"
# REFACTOR
ref = "!f() { git cap \"♻️ REFACTOR($1): $2\"; }; f"
# INITIAL COMMIT
int = "!f() { git cap \"🎉 INITIAL COMMIT($1): $2\"; }; f"
感謝你的提議!
這是Git表情符號的一個網站://gitmoji.carloscuesta.me/
🎉 :tada:初次提交
🚀 :rocket:[Add] 實現新功能時
🔨 :hammer:[Fix]修復bug或處理issue時
🎨 :art:[Refactor] 當重構/改善程式碼時
🚧 :construction: [WIP]
📝 :pencil: [Minor] 一些小更新
大家可以使用隨機提交資訊生成網站。享受它吧!
//paulospx.github.io/some_if_statements/commits.html