typememo.jp

Good Git Commit Message —勉強メモ

2020.07.23

#tech#git

Contents


はじめに

お仕事で Github や Gitlab を使うのですが,Git のコミットメッセージって難しいなぁと感じました.

何を,どれくらい,どういう意図を込めて,どういうモチベーションで書けば良いのか,新米エンジニアにはよくわからないのです.

今までチーム開発とか,OSS へのコントリビュートとかしたことないので.

どういうコミットメッセージが良いのかわからないので,“git コミットメッセージ” とかでググって勉強しました.

本記事は,その勉強メモです.

前提: 一つのコミットには一つの対応

前提としてですが,一つのコミットには一つの対応だけを反映させるようにしましょう.

同一ファイルで内容の異なる対応をコミットするときに,特に気をつけましょう.

安直にファイル単位でコミットしてしまうと,同一ファイルの異なる内容の対応が同じコミットになってしまうので,後々振り返る時に苦労します.

コミットメッセージには “何を–What” と “なぜ–Why” を書く

コミットメッセージのフォーマットは “タイトル–Subject” と “本文–Body” に分けるのが基本です.

コミットメッセージのフォーマットについては,A Note About Git Commit Messages をお読みいただければと思います.

基本的なフォーマットは,コミットメッセージのタイトルを最初の一文に書き,1行空けて本文を書く,というスタイルが一般的です.

[Tag] <Subject>
- <Body>

タイトルには what を書く

タイトルには,このコミットが何に対応したのかを簡潔に書きます.

タイトルなので,タイトルにピリオドは含めません.

Writing good commit messages @erland にコミットメッセージの “Do / Don’t” が書いてあるので,一度読んでおくと良いと思います.

コミットタイトルを grep して,特定の修正が入ったコミットを特定する人もいます.

なので,コミットタイトルには検索結果に引っかかるような,特徴的な文字列を書いておくと良いと思います.

本文には why を書く

本文には,このコミットの理由を書いておくと良いとされています.

理由ありきでコーディングしているはずなので,その理由を書けば良いと思います.

また,redmine とか jira とか asana とか,そういうプロジェクト管理ツールを使っている人は,コミットの発端になった issue の url とか 番号とかを紐つけておくと良いと思います.

コミットメッセージの本文には書けないような経緯が issue には書いてあると思いますので.

タイトル–Subject の常套句

コミットメッセージにはタイトルと本文があり,タイトルには what を書き,本文には why を書けばいいのか,ということはわかりました.

この節では,コミットメッセージのタイトルの常套句について説明したいと思います.

コミットメッセージのタイトルは次の言葉から書き始めるのが,コミットメッセージ界隈でのお作法のようです.

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

その中でも特に普段使いできそうな常套句を絞り込むと以下の5つかなと思います.

  • Fix : バグ修正
  • Add : 新規ファイル / 新規機能 追加
  • Update : バグではない機能修正
  • Change : 今までのものから別のものへの変更
  • Remove : ファイル削除

例えば,chromium のコミット履歴を覗いてみると,上記のコミットメッセージタイトル常套句がいくつか使われている様子が伺えるかと思います.

例文集もまとめている方がおりますので,そちらも読んでおくとコミットメッセージのタイトルをどういう風に書けば良いのか雰囲気が掴めるのではないかと思います.

おわりに

良いコミットメッセージを書くにはどうすれば良いのか何となくわかってきました.

職場でのルールがあると思いますので,仕事で使っているリポジトリのコミット履歴を読んで,職場特有のコミットメッセージの型を把握すると良いと思います.

型をある程度把握したら,あとは実際にコミットメッセージを書いてみるしかないと思います.

コミットメッセージを書いたら,先輩とか同期とかに添削してもらうと良いと思います.

その時は誰が書いたコミットメッセージか伏せておくと,バイアスが掛からず率直なコメントをもらえると思います.

筆者自身もまだまだ勉強中です.

最後までお読みいただき,ありがとうございました.

愛用品

  • Xiser Pro Trainer
    1日中踏み続けられる強靭なステッパーでおすすめです.
  • HHKB Professional 墨 x HHKB キートップセット 白
    ボディは墨色キートップは白色なのでめちゃめちゃ目に優しいのでおすすめです.
  • Apple Magic Mouse 2
    トラックパッドは指が攣りそうになりますけどマウスはその心配が無いのでおすすめです.
  • Apple MacMini
    ミニマルでパワフルなデスクトップ PC なので個人的に大好きなのでおすすめです.
  • iiyama Display 27inch FullHD
    鮮明すぎない画面で目も疲れにくいですし何より高さ調節できるのが最高なのでおすすめです.
  • KINTO UNITEA 550ml
    500ml の大容量でこの綺麗なデザインは他にみたことがないのでおすすめです.

山田 武尊 / 立教大学(理学) / ACCESS CO LTD