Emoji-Log:編寫 Git 提交信息的新方法

Emoji-Log:編寫 Git 提交信息的新方法

使用 Emoji-Log 為你的提交添加上下文。

-- Ahmad Awais

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

同時我也是“ 避免重複工作(Don’t Repeat Yourself)”(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
  • DOC: 必要的信息
  • 添加文檔時使用,比如 README.md 甚至是內聯文檔。
  • 例如 DOC: API 接口教程
  • 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

本文由 LCTT 原創編譯, Linux中國 榮譽推出


分享到:


相關文章: