Gitlabのコミットメッセージ

Emoji Prefixとは

GitのコミットメッセージのPrefixを絵文字にしましょうということです.

これによって, コミットが何をしているのか(機能の追加? 機能の修正? バグ修正?)が見やすくなります.

逆に 少しちゃらちゃらしたイメージになるので, 会社で使うには少し抵抗があるかもしれません.

どんなemojiを使うか

自分の場合は次のような絵文字を使っています.

使っているemojiは人によりますが, 自分のemojiを一つの例として示します:

  • :heavy_plus_sign: 機能の追加
  • :heavy_minus_sign:機能の削除
  • 🎨 :art: 形式/フォーマットの修正
  • 🐛 :bug: バグの修正
  • ✏️ :doc: ドキュメントを書く
  • 🚀 :speed: パフォーマンスの改善
  • 💡 :idea: 新しいアイデア
  • 🔒 :lock: セキュリティのことについて修正

gitをコミットするときのコメントを修正する

git commitを実行したときにでるメッセージのファイルは.gitconfigで設定されているcommit.templateで設定できます.

.gitconfigには次のように設定しています:

...
[commit]
    template = ~/.gitmessage
...

.gitmessageには次のように設定しています:

# ==== Emojis ====
# ➕  plus       :heavy_plus_sign:  when adding feature
# ➖  minus      :heavy_minus_sign: when removing feature
# 🎨  art        :art:              when improving the format/structure of the code
# 🐛  bug        :bug:              when fixing a bug
# ✏️   doc        :pencil2:          when writing docs
# 🚀  speed      :rocket:           when improving performance
# 💡  idea       :bulb:             new idea
# 🔒  security   :lock:             when dealing with security

# ==== Format ====
# :emoji: Subject
#
# Commit body...

# ==== The Seven Rules ====
# 1. Separate subject from body with a blank line
# 2. Limit the subject line to 50 characters
# 3. Capitalize the subject line
# 4. Do not end the subject line with a period
# 5. Use the imperative mood in the subject line
# 6. Wrap the body at 72 characters
# 7. Use the body to explain what and why vs. how
#
# How to Write a Git Commit Message http://chris.beams.io/posts/git-commit/

# for http://memo.goodpatch.co/2016/07/beautiful-commits-with-emojis/

# Ref:
#
# https://qiita.com/mfks17/items/e68adc058e1a9e519807
# https://gist.github.com/pocotan001/68f96bf86891db316f20

emojiのスニペットを登録する

これで コミットするときにemojiを入力するときに補完を使うことはできます.

が, これではまだemojiを使うことはストレスフルだと思います.

いちいち コミットするときに commitのメッセージを見ないといけなくなってしまいます(:heavy_plus_sign:なんて覚えたくない!).

そこで 自分は以下のようにスニペットを定義しています.

これによって git pushする前にemojiの間違えに気づけるようになります.

snippet emoji_heavy_plus_sign
alias plus
abbr ➕
	➕ ${0}

snippet emoji_heavy_minus_sign
alias minus
abbr ➖
	➖ ${0}

snippet emoji_art
alias art
abbr 🎨
	🎨 ${0}

snippet emoji_rocket
alias speed
abbr 🚀
	🚀 ${0}

snippet emoji_bulb
alias idea
abbr 💡
	💡 ${0}

snippet emoji_pencil2
alias doc
abbr ✏️
	✏️  ${0}

snippet emoji_bug
alias bug
abbr 🐛
	🐛 ${0}

snippet emoji_lock
alias security
abbr 🔒
	🔒 ${0}


外部リンク