酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

Git コミットメッセージのプラクティスまとめ

最近、自分のgitのコミットログを読み返してみたら、すごく分かりづらかったので勉強も兼ねて、Git のコミットログのプラクティスを勉強してみました!


Gitのコミットメッセージの書き方

以下のサイトを参考にさせていただきつつ、簡単にまとめてみました!

書き方を知ることのメリット

Gitのコミットメッセージをわかりやすく残すことで、その変更どんな目的で具体的にどんなことを修正したかを 次の変更を行う人に伝えることができ、次の人の修正する時間を節約することができる。

具体的にどんなことを書くべきか

どのように変更を行ったかは、コードを見ればわかる。もしわからないのなら、コードにコメントを書くべき。 変更した理由を明らかにする事に焦点を絞り、変更前がどうで、何が問題で、今はどのように機能するのか、 なぜその方法で解決することを決めたのかを書きましょう。

サンプル

[コミット種別] だいたい50字以内で変更を要約 refs #xxx

必要であればより詳細な説明を書く。約72字以内で改行する。コンテキストによっては、初めの1文をコミットのタイトル、それ以下を本文とすることも。タイトルと本文の間は必ず1行空ける(本文を全く書かない場合を除く)。タイトルと本文を繋げて書くと、 log や shortlog 、rebase などのさまざまなツールが混乱するため。

このコミットが解決している問題を説明する。どのように、ではなく、なぜこの変更をしたのかに重きを置く(どのように変更したかはコードを見れば分かる)。この変更で生じる副作用や直感的には分からない他の結果は生じないか?何かあればここで説明する。

コミット種別

コミットの種類。シンプルなソフトウェアの開発で良ければこのくらい。

- Fix: バグ修正
- Add: 新規の(ファイル)機能追加
- Modify: バグではない機能の修正
- Clean: リファクタリング等による整理
- Remove: 削除

書き方の要点

要点は以下のとおり。

- タイトルを50字以内(全角なら25文字以内?)におさめる。命令形で文頭を大文字に、文末のピリオドは不要
- チケット駆動であれば位置文字目
- タイトルの後は1行空けて本文を書く
- 本文は1行あたり72字以内で複数行で書く
- 本文では「どのように」ではなく「何を」と「なぜ」を説明する。箇条書きでも良い

便利そうなgitコマンド

以下便利そうなgitコマンド。

1
2
3
4
5
# タイトルだけを表示
$ git log --oneline

# ユーザーごとにコミットをグループ分けする
$ git shortlog

アトラシアンの git commit チュートリアル

Git commit | アトラシアン Git チュートリアル

  • git commit はステージされたスナップショットをローカルリポジトリに登録するコマンド
  • 開発者のローカル環境で反映されるので、細かいリビジョンのスナップショットを取るのが良い

Special Thanks

おすすめの書籍