git commit を絵文字でデコる


背景

プロジェクトでコミットをデコっている人が居たので、面白そうだなぁと思っていました。
私も灰色の世界を少し色鮮やかにしてみたかったのでやってみました。

真面目な話、内容によるコミット粒度をもう見直したくて、少し意識を向けるためにこのように一定数にカテゴライズをしてみたらより意識できるのでは?と思ったのでその試みです。

目標

prefixとして頭に絵文字をつけて、視覚的にどんな意味合いのコミットかわかりやすくします。

こんな感じで、何をしているコミットなのかパッとみ分かりやすいです。
PRコメントのやりとりやコミットコメントは、会話というより必要な情報の共有と明確化するのをなるべく意識しているので淡々とした文章になりがちです。

なので、このように少し可愛くしても大きな罪はないでしょう。

やり方

これを実現する流れとしては、

  1. 絵文字テンプレートを用意
  2. 上記をgit config に設定
  3. 通常通り編集、差分git add fileの手順を踏む
  4. git commitを叩くとvimが立ち上がる
  5. 設定したテンプレート見ながらコメント入力

という感じです。

絵文字テンプレートを用意する

自分で作成してもいいですし、公開されているものが沢山あるのでそちらを使ってしまった方が時間削減できます。
大体の絵文字の意味は共通認識されていると思いますが、たまに違うのもあったりします。

私は
https://gist.github.com/nownabe/85d8595fd142adc426fbfaf2bab015e0
を拝借させていただいて、自分用に改良しました。

よく使われるのはここに沢山載ってあるので参考に。
https://gitmoji.carloscuesta.me/

# ==== Emojis ====
# 🐛  :bug: バグ修正
# 👍  :+1: 機能改善
# ✨  :sparkles: 部分的な機能追加
# 🎉  :tada: 盛大に祝うべき大きな機能追加
# ♻️   :recycle: リファクタリング
# 🚿  :shower: 不要な機能・使われなくなった機能の削除
# 💚  :green_heart: テストやCIの修正・改善
# 👕  :shirt: Lintエラーの修正やコードスタイルの修正
# 🚀  :rocket: パフォーマンス改善
# 🆙  :up: 依存パッケージなどのアップデート
# 🔒  :lock: 新機能の公開範囲の制限
# 👮  :cop: セキュリティ関連の改善

このようにコメントアウトして作成してください。

git config に設定

ファイルは適当な場所に保存しておいてください。
使用したいリポジトリのgit configにそのパスを指定してテンプレートを設定します。

git config commit.template ~/TEMPLATE_FILE

とすれば設定できるはずです。

設定は以上です。
--globalを設定すればグローバル設定も可能です。

コミットをデコろう

あとはいつも通り

git add -A

なりして

git commit

を叩くと

こんな感じで設定したテンプレートが出てきます。
これを見ながら絵文字コードとコメントをvimで入力すればOKです。

補足

絵文字をコメントに載せるだけなら

git commit -m ":fire: fireeeee"

と普通にコードを入力すればできたっぽいです。
上記で行っているのはカンペ、チートシートの追加ですね。

憶えちゃえばいちいちvim開かなくても良さそうかも。

終わりに

ウチもコメント、デコれたヨ