我是一名全職的開源開發人員,我喜歡稱自己為“開源者”。我從事開源軟體工作已經超過十年,並構建了數以百計的開源軟體應用程式。
同時我也是“避免重覆工作”(DRY)哲學的忠實粉絲,並且我相信編寫更好的 Git 提交訊息是 DRY 的一個重要組成部分。它們具有足夠的背景關係關聯,可以作為你開源軟體的變更日誌。我編寫的眾多工作流之一是 Emoji-Log[2],它是一個簡單易用的開源 Git 提交日誌標準。它透過使用表情符號來建立更好的 Git 提交訊息,從而改善了開發人員的體驗(DX)。
我使用 Emoji-Log 構建了 VSCode Tips & Tricks 倉庫[3] 和我的 ? 紫色 VSCode 主題倉庫[4],以及一個看起來很漂亮的自動變更日誌[5]。
Emoji-Log 的哲學
我喜歡(很多)表情符號,我很喜歡它們。程式設計、程式碼、極客/書獃子、開源……所有這一切本質上都很枯燥,有時甚至很無聊。表情符號幫助我新增顏色和情感。想要將感受新增到這個 2D 的、平板的、基於文字的程式碼世界並沒有錯。
相比於數百個表情符號[6],我學會的更好辦法是讓類別較小和普遍性。以下是指導使用 Emoji-Log 編寫提交資訊的原則:
編寫提交資訊
僅使用以下 Git 提交資訊。簡單而小巧的佔地面積是 Emoji-Log 的核心。
就這些了,不多不少。
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[8] 安裝這些函式,執行以下命令:
-
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 的倉庫:
你呢?如果你的倉庫使用 Emoji-Log,請將這個 Emoji-Log 徽章[13]放到你的 README 中,並給我傳送一個拉取請求[14],以讓我可以將你的倉庫列在這裡。
via: https://opensource.com/article/19/2/emoji-log-git-commit-messages
作者:Ahmad Awais[16] 選題:lujun9972 譯者:MjSeven 校對:wxy