GitHubで絵文字コミットを続けてみて有用だったEmojiまとめ
mzyy94
mzyy94
7 min read

Categories

Tags

みなさんは絵文字コミットというものをご存知でしょうか? プロ生い人のサイトでも以下のように紹介されており、知っている人も多いと思いますが、GitHubで絵文字に置換される特定のワードをコミットメッセージに追加し、 ぱっと見でどういった種類の変更があったのかに気づきやすいようにするものです。

GitHub で絵文字入りコミットメッセージを活用しているプロジェクトを調べてみた | プログラミング生放送

少し前から興味があったのですが、GitLabやBitBucketでプライベートなリポジトリで開発してるものでは絵文字として表示されないため、なかなか導入する機会がありませんでした。 先々月にブログで記事にしたKodi用Chinachu PVRクライアントadd-onの作成をパブリックなリポジトリで開発しようと思い立ったとき、 いい機会だと感じたので初期コミットから絵文字コミットメッセージを導入し始めました。

mzyy94/pvr.chinachu - GitHub

コミットを続けていたら開発版ブランチが100コミットに近づいてきたので、いままで使ってきた絵文字コミットをまとめてみました。

Table of Contents

  1. 絵文字コミット
    1. 導入
    2. 一覧
      1. 一般的な用途
        1. バグ関連
        2. コメントしづらい変更
        3. ファイル追加・削除・新規作成・移動
        4. ドキュメントやライセンス関連
        5. ビルドやデプロイ関係
        6. Gitバージョン管理
        7. 依存関係
        8. 数回使用したものの、ボツになったやつ
        9. Chinachu PVR クライアント向けの独自記号
    3. まとめ

絵文字コミット

導入

まず、GitHubでどのような文字列が絵文字に置換されるかですが、インターネット上の対応表を掲載しているサイトを見て対応付けしていました。 そのなかでも以下のサイトが特に見やすく、選択するとクリップボードにコピーされるので愛用していました。

Emoji cheat sheet for GitHub, Basecamp and other services

GitHubでは、コロンで挟む形で記述した文字列が対応する絵文字に変換されるようになっています。 絵文字コミットはパッと見て何を指しているかがわかるようにする目的で導入したため、コロンの間の文字列とミスマッチなものもあります。 反義語になるようなことは避けていますが、理解しがたいものも混ざってしまう点を導入時には覚悟しておかなければなりません。

一覧

以下のようにして、用いた絵文字を列挙して、どのような用途で使用したかを一覧にまとめました。

$ git log --oneline | grep -o ':\w\+:' | sort -u

今回のプロジェクトはPVR(Personal Video Recorder:ビデオレコーダー)を中心とするものなので、予約録画や番組視聴に関する絵文字コミットメッセージも多く導入しました。 それらに関しては一般的なプロジェクトにはそのままでは利用できないものであるため、末尾にまとめておきます。

一般的な用途

バグ関連
絵文字 絵文字置換文字列 用途
🐛 :bug: バグFixの時に用いる
‼️ :bangbang: バグとは言い切れないけど何か悪いものを正しく修正した時
コメントしづらい変更
絵文字 絵文字置換文字列 用途
🆗 :ok: なにかokな変更
🆒 :cool: なにかcoolな変更
ファイル追加・削除・新規作成・移動
絵文字 絵文字置換文字列 用途
🆕 :new: ファイルの追加。主に新規作成したタイミングで。
🔥 :fire: ファイルの削除。ソースコードの大半を削除した場合もこれ。
📥 :inbox_tray: ファイルの移動。他プロジェクトのファイルを持ってきた時とか
ドキュメントやライセンス関連
絵文字 絵文字置換文字列 用途
© :copyright: ライセンスの変更や追加。ライセンスファイルに関して。
🌐 :globe_with_meridians: 多言語対応ツールの設定や言語リソースの変更
✏️ :pencil: ドキュメントの変更。主にREADME
ビルドやデプロイ関係
絵文字 絵文字置換文字列 用途
🔧 :wrench: ビルドやデプロイの全般的な変更
📦 :package: パッケージングに関する変更
🍎 :apple: OS XやiOSなどApple製品を対象とするのビルド関連変更
💻 :computer: Deploy tagert system. Some processor
👾 :space_invader: Android向けのビルド関連変更
Gitバージョン管理
絵文字 絵文字置換文字列 用途
↪️ :arrow_right_hook: ブランチをマージしたり、Pull-Requestを取り込んだ時
🆙 :up: プロダクトのバージョンアップ。git tagとする時
🚫 :no_entry_sign: トラッキングしない時に。.gitignoreの変更時
依存関係
絵文字 絵文字置換文字列 用途
⤴️ :arrow_heading_up: 依存ライブラリや依存ツールのバージョンをあげる時。
⤵️ :arrow_down: 依存ライブラリや依存ツールのバージョンを下げた時。
数回使用したものの、ボツになったやつ
絵文字 絵文字置換文字列 用途
🔄 :arrows_counterclockwise: データのリロードに関する時など。長くて使いづらい。
↖️ :arrow_upper_left: バージョニングに関する変更とか。出番がもうない。
↗️ :arrow_upper_right: なにかイケてる修正した時に使った。今は:ok:とか:cool:が担当
⚠️ :warning: Includeガード関連。こんないい絵文字をこう使ったのは痛いミス
👈 :point_left: コメント関連に使用した。再度登場する機会がない。
💣 :bomb: リモートのファイル削除に関して。たぶん疲れてたんだと思う。
Chinachu PVR クライアント向けの独自記号
絵文字 絵文字置換文字列 用途
🔢 :1234: テレビのチャンネルに関する変更
🌇 :city_sunrise: 録画データのサムネイルに関する変更
⌛️ :hourglass: 録画予約に関する変更
📼 :vhs: 録画済み番組に関する変更
🔴 :red_circle: テレビ番組の録画に関する変更
📺 :tv: リアルタイム視聴に関する変更
📄 :page_facing_up: ログ出力に関する変更
🔁 :repeat: サーバーのデータを定期的に取得する部分の変更
🕐 :clock1: 録画予約に関する変更のコミットで間違えて使った。

まとめ

視認性は向上するも、絵文字一文字に対して多いと20文字以上もコミットメッセージを消費してしまうのが難点。 また、「窓」の絵文字がないため、Windows向けバイナリを作成する機運が高まらないのも問題だと感じました(要出典)。

しかし視認性が向上した利点は大きく、GitHubでのコミットログ一覧を流し見するだけで目的のコミットを見つけることができる点はとても良いことであると感ます。