Emoji-Log:編寫 Git 提交信息的新方法
我是一名全職的開源開發人員,我喜歡稱自己為「開源者」。我從事開源軟體工作已經超過十年,並構建了數以百計的開源軟體應用程序。
同時我也是「 避免重複工作 」(DRY)哲學的忠實粉絲,並且我相信編寫更好的 Git 提交消息是 DRY 的一個重要組成部分。它們具有足夠的上下文關聯,可以作為你開源軟體的變更日誌。我編寫的眾多工作流之一是 Emoji-Log,它是一個簡單易用的開源 Git 提交日誌標準。它通過使用表情符號來創建更好的 Git 提交消息,從而改善了開發人員的體驗(DX)。
我使用 Emoji-Log 構建了 VSCode Tips & Tricks 倉庫 和我的 ? 紫色 VSCode 主題倉庫,以及一個看起來很漂亮的自動變更日誌。
Emoji-Log 的哲學
我喜歡(很多)表情符號,我很喜歡它們。編程、代碼、極客/書獃子、開源……所有這一切本質上都很枯燥,有時甚至很無聊。表情符號幫助我添加顏色和情感。想要將感受添加到這個 2D 的、平板的、基於文本的代碼世界並沒有錯。
相比於數百個表情符號,我學會的更好辦法是讓類別較小和普遍性。以下是指導使用 Emoji-Log 編寫提交信息的原則:
- 必要的
- Git 提交信息是必要的。
- 像下訂單一樣編寫提交信息。
- 例如,使用 ✅ Add 而不是 ❌ Added
- 例如,使用 ✅ Create 而不是 ❌ Creating
- 規則
- 少數類別易於記憶。
- 不多也不少
- 例如 ? NEW 、 ? IMPROVE 、 ? FIX 、 ? DOC 、 ? RELEASE 、 ✅ TEST
- 行為
- 讓 Git 的提交基於你所採取的操作
- 使用像 VSCode 這樣的編輯器來提交帶有提交信息的正確文件。
編寫提交信息
僅使用以下 Git 提交信息。簡單而小巧的佔地面積是 Emoji-Log 的核心。
- ? NEW: 必要的信息
- 當你添加一些全新的東西時使用。
- 例如 ? NEW: 添加 Git 忽略的文件
- 當你添加一些全新的東西時使用。
- ? IMPROVE: 必要的信息
- 用於改進/增強代碼段,如重構等。
- 例如 ? IMPROVE: 遠程 IP API 函數
- 用於改進/增強代碼段,如重構等。
- ? FIX: 必要的信息
- 修復 bug 時使用,不用解釋了吧?
- 例如 ? FIX: Case converter
- 修復 bug 時使用,不用解釋了吧?
- ? DOC: 必要的信息
- 添加文檔時使用,比如 README.md 甚至是內聯文檔。
- 例如 ? DOC: API 介面教程
- 添加文檔時使用,比如 README.md 甚至是內聯文檔。
- ? RELEASE: 必要的信息
- 發布新版本時使用。例如, ? RELEASE: Version 2.0.0
- ✅ TEST: 必要的信息
- 發布新版本時使用。
- 例如 ✅ TEST: 模擬用戶登錄/註銷
- 發布新版本時使用。
就這些了,不多不少。
Emoji-Log 函數
為了快速構建原型,我寫了以下函數,你可以將它們添加到 .bashrc
或者 .zshrc
文件中以快速使用 Emoji-Log。
#.# Better Git Logs.
### Using EMOJI-LOG (https://github.com/ahmadawais/Emoji-Log).
# Git Commit, Add all and Push — in one step.
function gcap() {
git add . && git commit -m "$*" && git push
}
# NEW.
function gnew() {
gcap "? NEW: $@"
}
# IMPROVE.
function gimp() {
gcap "? IMPROVE: $@"
}
# FIX.
function gfix() {
gcap "? FIX: $@"
}
# RELEASE.
function grlz() {
gcap "? RELEASE: $@"
}
# DOC.
function gdoc() {
gcap "? DOC: $@"
}
# TEST.
function gtst() {
gcap "✅ TEST: $@"
}
要為 fish shell 安裝這些函數,運行以下命令:
function gcap; git add .; and git commit -m "$argv"; and git push; end;
function gnew; gcap "? NEW: $argv"; end
function gimp; gcap "? IMPROVE: $argv"; end;
function gfix; gcap "? FIX: $argv"; end;
function grlz; gcap "? RELEASE: $argv"; end;
function gdoc; gcap "? DOC: $argv"; end;
function gtst; gcap "✅ TEST: $argv"; end;
funcsave gcap
funcsave gnew
funcsave gimp
funcsave gfix
funcsave grlz
funcsave gdoc
funcsave gtst
如果你願意,可以將這些別名直接粘貼到 ~/.gitconfig
文件:
# Git Commit, Add all and Push — in one step.
cap = "!f() { git add .; git commit -m "$@"; git push; }; f"
# NEW.
new = "!f() { git cap "? NEW: $@"; }; f"
# IMPROVE.
imp = "!f() { git cap "? IMPROVE: $@"; }; f"
# FIX.
fix = "!f() { git cap "? FIX: $@"; }; f"
# RELEASE.
rlz = "!f() { git cap "? RELEASE: $@"; }; f"
# DOC.
doc = "!f() { git cap "? DOC: $@"; }; f"
# TEST.
tst = "!f() { git cap "✅ TEST: $@"; }; f"
Emoji-Log 例子
這裡列出了一些使用 Emoji-Log 的倉庫:
- Create-guten-block toolkit
- VSCode Shades of Purple theme
- Ahmad Awais' GitHub repos (我的最新的倉庫)
- CaptainCore CLI (WordPress 管理工具)
- CaptainCore GUI (WordPress 插件)
你呢?如果你的倉庫使用 Emoji-Log,請將這個 Emoji-Log 徽章放到你的 README 中,並給我發送一個拉取請求,以讓我可以將你的倉庫列在這裡。
via: https://opensource.com/article/19/2/emoji-log-git-commit-messages
作者:Ahmad Awais 選題:lujun9972 譯者:MjSeven 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive