概要
Emoji を利用した Git の commit フォーマットの一例
前提
- Atom のコミットメッセージのルールを参考にしました
- このフォーマットを広めよう、という意志はないのでフォーマットの是非について議論する気はない
- 所属組織および個人のプロダクトに関して、このルールでやってますよ、という一例
- やってますよ、というよりはこれからやりますよ(2015/01/30 ~)
- 試行錯誤するので、変化すると思う。この記事を最新に保てるか不明
利点
- 先頭の絵文字を見ただけでコミット種別を即判断できる
- コミット種別を分けることで、コミット粒度が適切になる
- コミットメッセージのフォーマット統一
- フォーマットを統一しておくことで増す利便性
- 検索しやすくなる
- 自動処理がしやすくなる
欠点
- 入力が面倒
- Snippet で対応
- 自組織+個人の開発においては、エディタが統一されているので問題なし
- Snippet で対応
Rules
Format | Desc |
---|---|
add: input_your_summary | 仕様追加 |
modify: input_your_summary | 仕様変更 |
delete: input_your_summary | 仕様削除 |
refactor: input_your_summary | リファクタリング |
tool: input_your_summary | ツール等、人間以外によるコミット |
test: input_your_summary | テストコードの追加 |
doc: input_your_summary | ドキュメント |
bump up: input_your_summary | バージョンアップ |
dirty: input_your_summary | 動かないバージョンのコミット等、仕方なく行うコミット |
other: input_your_summary | 未分類。分類不可 |
Snippets
Sublime Text 2 のスニペットです。
補足
- 仕様新規・仕様更新・仕様削除はあくまで仕様に対して分類する。振る舞いが変わらないならリファクタリング
- テストについては、プロダクトコードだけあるシステムに後からテストを追加するようなケースを想定
- 新規機能の実装時にプロダクトコード・テストを一緒にコミットする場合は、仕様追加に分類
- ドキュメントは、 README や API ドキュメントなど
- バージョンアップは version ファイルの更新。この更新は version ファイルの更新以外と混在させない
- Dirty は、やむを得ず作業途中のコミットを行います、というようなケース
- 絵文字の直後に同等の意味を持つ英語を保持するのは、冗長かな?という話になった
- しかし、慣れてる人以外にはあったほうが有益
- どうせ Snippet で入力するので入力の手間的には気にならない
コミットイメージ
実際に、上記の Snippet 作成時に Emoji Format の Commit 利用してみました。
関連記事
Git の Commit Template + Subliem Text 2 の Snippet でコミットメッセージの作法を統一・効率化する