この記事はFIXER Advent Calendar 2021 21日目 の記事です。
皆さんこんにちは!FIXERの小倉です。
突然ですが、「gitmoji」って知っていますか?
gitmojiとはgit commitするときにコミットメッセージの先頭に絵文字を簡単に付けれるようになるツールのことです。
公式サイトはこちらからどうぞ(gitmoji | An emoji guide for your commit messages)
これを導入することにより、そのcommitがどのような変更をしたのかということをアイコンを見るだけで把握できるようになります。
一文字のスペースで表せるので場所を取らないのも良いですね
ただ、gitmojiを導入しようとしたときにこう思ったことはありませんか?
「...え?こんなにたくさんあるの?これ全部覚えるのは大変でめんどくさくない?」
そうなんです。現在gitmojiの公式サイトでは約70個の文字が紹介されており、これらを全部覚えるのは大変です。
そこで、実際にどの文字を使用すればよいのかをお話ししたいと思います。
実は本当に覚える必要のあるそこまでgitmojiは多くないんです。
気になった方はしばしお付き合いください。
非常によく使う
ここでは紹介するのはどんなプロジェクトでも見かける、もしくは絶対に覚えたほうが良いgitmojiです。
ここら辺は :sparkles: のような絵文字名も覚えて損はないでしょう。
- ✨ :sparkles: Introduce new features.
新規機能の実装の時にはこれを使用します。
- ⚡️ :zap: Improve performance.
既存の機能に別の機能を追加するときに使用します。
上記の ✨ と合わせて非常によく使います。
- 🔥 :fire: Remove code or files.
機能を削除したときに使います。
これら3つのgitmojiは非常に汎用性が高いので他の似た意味のgitmojiの代わりとして用いられることも多いです。
- 🐛 :bug: Fix a bug.
バグを修正したときに使います。
- 🩹 :adhesive_bandage: Simple fix for a non-critical issue.
ちょっとした修正にはこれを使用します。
🐛との使い分けは一瞬で修正できるなら🩹、機能そのものに問題がありしっかり取り組む必要があるなら 🐛というイメージです。
- 🚧 :construction: Work in progress.
WIP、つまり作業途中だよということ。
自分がもっともよく使用するのは上記の4つです。
よく使う
ここでは上記の6つ程ではないけど頻繁に見かけるもの、もしくはそのgitmojiを頻繁に使うわけではないけれど重要なものを紹介します。
- 🎉 :tada: Begin a project.
プロジェクトの最初のコミットに使います。
めでたい。
- 🎨 :art: Improve structure / format of the code.
コードのフォーマットを整えたときに使います。
コードの見た目を変えるだけ。
- ♻️ :recycle: Refactor code.
コードのリファクタリングを行った時に使います。
機能は変わらないけど中のコードをよりスマートにしたいときに。
- 📝 :memo: Add or update documentation.
処理に直接影響しない文章を修正したときに使います。
READMEなどのドキュメントやコメントアウト、文字列リテラルなどの修正に。
処理には直接影響しない特定のコードを編集したことを表すgitmojiはほかにもありますが、全部これでcommitすることもよく見かけます。
- 🚑️ :ambulance: Critical hotfix.
緊急性の高いバグを修正したときに使います。
これを見たらなるべく早めにレビューしてあげましょう。
- 🚀 :rocket: Deploy stuff.
デプロイしたときに使います。
- 🔖 :bookmark: Release / Version tags.
リリースするときに使います。
- ⏪️ :rewind: Revert changes.
以前の変更を元に戻すときに使います。
なるべくこれは使用することがないように気を付けたいですね...
あまり使用しない
ここではいろんなプロジェクトで見かける機会があるけれど、あまり覚える重要度が低いものを紹介します。
意味が似ているので別のgitmojiと統一されている場合も多いです。
混乱しないようにプロジェクトメンバーと相談して、使用するgitmojiを絞るのも良いでしょう。
- 🙈 :see_no_evil: Add or update a .gitignore file.
.gitignoreを変更したときに使用します。
見ざる。個人的に一番好きなgitmojiです。
- ✏️ :pencil2: Fix typos.
タイポしたときに使います。
自分は 🩹 で済ましてしまうことも多いです。
- 🚚 :truck: Move or rename resources (e.g.: files, paths, routes).
ファイルを移動したり名前を変更したりしたときに使います。
パスやルートが変更したときにも使います。
- 💬 :speech_balloon: Add or update text and literals.
テキストやリテラルを追加したり更新したときに使用します。
- 💡 :bulb: Add or update comments in source code.
コメントを追記したときに使います。
- 🏷️ :label: Add or update types.
型を変更したときに使います。
- 💥 :boom: Introduce breaking changes.
重大な変更を導入したときに使います。
なにかはわからないけどとにかく重要。
- 🔀 :twisted_rightwards_arrows: Merge branches.
ブランチをマージしたときに使います。
- ✅ :white_check_mark: Add, update, or pass tests.
テストを追加、更新、合格したときに使います。
- ⚗️ :alembic: Perform experiments.
実験を行った時に使用します。
- 🥅 :goal_net: Catch errors.
エラーを取得したときに使用します。
- 🧪 :test_tube: Add a failing test.
失敗例を追加したときに使います。
- 🚨 :rotating_light: Fix compiler / linter warnings.
コンパイラやリンターの警告を止めたときに使います。
- 📸 :camera_flash: Add or update snapshots.
スナップショットを更新したときに使います。
- 🧐 :monocle_face: Data exploration/inspection.
データの調査や検査をしたときに使います。
- ⚰️ :coffin: Remove dead code.
デッドコードを削除したときに使います。
- 🥚 :egg: Add or update an easter egg.
イースターエッグを追加したり更新したときに使用します。
イースターエッグとは、本来の機能とは無関係なこっそり隠したメッセージや機能のことです。
- 🧑💻 :bricks: Improve developer experience
開発者の育成のために書かれたコードの場合に使用します。
プロジェクトによって使う場合がある
ここで紹介するgitmojiはプロジェクトによっては使うことがあるというgitmojiです。
ここから下はすべて覚える必要はないと個人的には思います。
自分のプロジェクトにおいて必要なものだけ覚え、後は見かけたときにググる程度で問題ないでしょう。
実はここに属するのが大半なんです。
- 💄 :lipstick: Add or update the UI and style files.
UIやスタイルシートなど、見た目に関する変更を行たときに使います。
- 👽️ :alien: Update code due to external API changes.
外部のAPIの変更による影響でコードを修正したときに使います。
- ⬇️ :arrow_down: Downgrade dependencies.
依存関係をダウングレードしたときに使います。
- ⬆️ :arrow_up: Upgrade dependencies.
依存関係をアップグレードしたときに使います。
- 📌 :pushpin: Pin dependencies to specific versions.
依存関係を特定のバージョンに固定したときに使います。
- ➕ :heavy_plus_sign: Add a dependency.
依存関係を追加したときに使います。
- ➖ :heavy_minus_sign: Remove a dependency.
依存関係を削除したときに使います。
- 🔧 :wrench: Add or update configuration files.
構成ファイルを追加したり更新したときに使います。
- 👷 :construction_worker: Add or update CI build system.
CIビルドシステムを追加または更新したときに使います。
- 💚 :green_heart: Fix CI Build.
CIビルドを修正したときに使います。
- 🔒️ :lock: Fix security issues.
セキュリティに関する問題を修正したときに使います。
- 📈 :chart_with_upwards_trend: Add or update analytics or track code.
解析コードを追加したときに使います。
- 🍱 :bento: Add or update assets.
アセットを追加したり更新したときに使います。
ベントーっていうのがかわいいです。
- 🏗️ :building_construction: Make architectural changes.
アーキテクチャを変更したときに使用します。
- 🗃️ :card_file_box: Perform database related changes.
データベース関連の変更に対応したときに使用します。
- 🧱 :bricks: Infrastructure related changes.
インフラに関する変更を行ったときに使用します。
- 🔨 :hammer: Add or update development scripts.
スクリプトを追加したり更新したときに使います。
- 🌱 :seedling: Add or update seed files.
シードファイルを変更したときに使います。
- 🔊 :loud_sound: Add or update logs.
ログを更新したときに使います。
- 🔇 :mute: Remove logs.
ログを削除したときに使います。
- 🛂 :passport_control: Work on code related to authorization, roles and permissions.
アクセス権限に関わるコードを書いたときに使用します。
- 📦️ :package: Add or update compiled files or packages.
コンパイルされたファイルを追加したり更新したときに使用します。
- 🚩 :triangular_flag_on_post: Add, update, or remove feature flags.
フィーチャーフラグに関する変更を行ったときに使用します。
- 👔 :necktie: Add or update business logic
ビジネスロジックを追加したり、更新したときに使用します 。
- 🩺 :stethoscope: Add or update healthcheck.
ヘルスチェックを追加したり、更新したときに使用します 。
- 🤡 :clown_face: Mock things.
モック(模型)であることを伝えるときに使用します。
- 🔍️ :mag: Improve SEO.
SEO(検索エンジン最適化)を改善したときに使います。
- 💫 :dizzy: Add or update animations and transitions.
アニメーションを追加したり、更新したときに使用します。
- 🌐 :globe_with_meridians: Internationalization and localization.
グローバル化に対応したときに使います。
- 📱 :iphone: Work on responsive design.
レスポンシブデザインに対応したときに使用します。
- ♿️ :wheelchair: Improve accessibility.
アクセシビリティの向上を行った場合に使用します。
- 🚸 :children_crossing: Improve user experience / usability.
UX(ユーザーエクスペリエンス)の向上を行った場合に使用します。
- 📄 :page_facing_up: Add or update license.
ライセンスを追加したり更新したときに使います。
- 👥 :busts_in_silhouette: Add or update contributor(s).
寄稿者を追加したり、更新したときに使用します。
- 🗑️ :wastebasket: Deprecate code that needs to be cleaned up.
後ほどクリーンアップする必要があるときに使用します。
おしゃれ枠
gitmojiのユーモアが感じられる2つです。
覚える必要性は高くないけれどなぜか自然と覚えてしまうgitmojiです。
- 💩 :poop: Write bad code that needs to be improved.
もう一度見直す必要があるとあるほど汚いコードを書いたときに使います。
- 🍻 :beers: Write code drunkenly.
お酒を飲みながらコードを書いたときに使います。
まぁ、これもこのコードはあまり信用しちゃだめだよということですね...
まとめ
以上でgitmojiを紹介しましたが、やはり数が多いですね。
でも、この約70種の絵文字とその意味を全て覚える必要はないと思います。
実際に自分のcommitは✨や⚡️が大半を占めていて、それと数種類のgitmojiで構成されています。(雑な🩹が多いのは大きな声では言えないけど)
もし、gitmojiはたくさん覚える必要のあるものだと勘違いしていて、まだ使ったことがないという人がいましたら是非使ってみてほしいです。
ぜひ皆さんもgitmojiを導入してみてはいかがでしょうか?