歡迎光臨
每天分享高質量文章

Emoji-Log:編寫 Git 提交資訊的新方法 | Linux 中國

使用 Emoji-Log 為你的提交新增背景關係。

— Ahmad Awais

 

我是一名全職的開源開發人員,我喜歡稱自己為“開源者”。我從事開源軟體工作已經超過十年,並構建了數以百計的開源軟體應用程式。

同時我也是“避免重覆工作Don’t Repeat Yourself”(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 提交資訊是必要的。
◈ 像下訂單一樣編寫提交資訊。

◈ 例如,使用 ✅ Add 而不是 ❌ Added
◈ 例如,使用 ✅ Create 而不是 ❌ Creating
◈ 規則

◈ 少數類別易於記憶。
◈ 不多也不少

◈ 例如 ? NEW 、 ? IMPROVE 、 ? FIX 、 ? DOC 、 ? RELEASE 、 ✅ TEST
◈ 行為

◈ 讓 Git 的提交基於你所採取的操作
◈ 使用像 VSCode[7] 這樣的編輯器來提交帶有提交資訊的正確檔案。

編寫提交資訊

僅使用以下 Git 提交資訊。簡單而小巧的佔地面積是 Emoji-Log 的核心。

◈ ? NEW: 必要的資訊

◈ 當你新增一些全新的東西時使用。

◈ 例如 ? NEW: 新增 Git 忽略的檔案
◈ ? IMPROVE: 必要的資訊

◈ 用於改進/增強程式碼段,如重構等。

◈ 例如 ? IMPROVE: 遠端 IP API 函式
◈ ? FIX: 必要的資訊

◈ 修複 bug 時使用,不用解釋了吧?

◈ 例如 ? FIX: Case converter
◈ ? DOC: 必要的資訊

◈ 新增檔案時使用,比如 README.md 甚至是行內檔案。

◈ 例如 ? DOC: API 介面教程
◈ ? RELEASE: 必要的資訊

◈ 釋出新版本時使用。例如, ? RELEASE: Version 2.0.0
◈ ✅ TEST: 必要的資訊

◈ 釋出新版本時使用。

◈ 例如 ✅ TEST: 模擬使用者登入/登出

就這些了,不多不少。

Emoji-Log 函式

為了快速構建原型,我寫了以下函式,你可以將它們新增到 .bashrc 或者 .zshrc 檔案中以快速使用 Emoji-Log。

  1. #.# Better Git Logs.
  2. ### Using EMOJI-LOG (https://github.com/ahmadawais/Emoji-Log).
  3. # Git Commit, Add all and Push in one step.
  4. function gcap() {
  5.     git add . && git commit -m "$*" && git push
  6. }
  7. # NEW.
  8. function gnew() {
  9.     gcap "? NEW: $@"
  10. }
  11. # IMPROVE.
  12. function gimp() {
  13.     gcap "? IMPROVE: $@"
  14. }
  15. # FIX.
  16. function gfix() {
  17.     gcap "? FIX: $@"
  18. }
  19. # RELEASE.
  20. function grlz() {
  21.     gcap "? RELEASE: $@"
  22. }
  23. # DOC.
  24. function gdoc() {
  25.     gcap "? DOC: $@"
  26. }
  27. # TEST.
  28. function gtst() {
  29.     gcap "✅ TEST: $@"
  30. }

要為 fish shell[8] 安裝這些函式,執行以下命令:

  1. function gcap; git add .; and git commit -m "$argv"; and git push; end;
  2. function gnew; gcap "? NEW: $argv"; end
  3. function gimp; gcap "? IMPROVE: $argv"; end;
  4. function gfix; gcap "? FIX: $argv"; end;
  5. function grlz; gcap "? RELEASE: $argv"; end;
  6. function gdoc; gcap "? DOC: $argv"; end;
  7. function gtst; gcap "✅ TEST: $argv"; end;
  8. funcsave gcap
  9. funcsave gnew
  10. funcsave gimp
  11. funcsave gfix
  12. funcsave grlz
  13. funcsave gdoc
  14. funcsave gtst

如果你願意,可以將這些別名直接貼上到 ~/.gitconfig 檔案:

  1. # Git Commit, Add all and Push in one step.
  2. cap = "!f() { git add .; git commit -m \"$@\"; git push; }; f"
  3. # NEW.
  4. new = "!f() { git cap \"? NEW: $@\"; }; f"
  5. # IMPROVE.
  6. imp = "!f() { git cap \"? IMPROVE: $@\"; }; f"
  7. # FIX.
  8. fix = "!f() { git cap \"? FIX: $@\"; }; f"
  9. # RELEASE.
  10. rlz = "!f() { git cap \"? RELEASE: $@\"; }; f"
  11. # DOC.
  12. doc = "!f() { git cap \"? DOC: $@\"; }; f"
  13. # TEST.
  14. tst = "!f() { git cap \"✅ TEST: $@\"; }; f"

Emoji-Log 例子

這裡列出了一些使用 Emoji-Log 的倉庫:

◈ Create-guten-block toolkit[9]
◈ VSCode Shades of Purple theme[10]
◈ Ahmad Awais’ GitHub repos (我的最新的倉庫)
◈ CaptainCore CLI[11] (WordPress 管理工具)
◈ CaptainCore GUI[12] (WordPress 外掛)

你呢?如果你的倉庫使用 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

贊(0)

分享創造快樂