eyecatch thumbnail

Good Git Commit Message —勉強メモ

Profile picture
ルッチ / Lucci
2020.07.23

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 の大容量でこの綺麗なデザインは他にみたことがないのでおすすめです.

関連記事


大学生へのお知らせ

ここまで記事を読んでくれて本当に嬉しいです、ありがとうございます。

プログラミングを始めたばかりの頃って「やるぞ!」という気持ちは強めですが、 実際に取り組み始めると「何からどうやってどこまでやればいんだ?」 という感じで羅針盤を失うことが多いような気がします。(実体験)

そんな勉強熱心で向上心高めなんだけど目指す姿が曖昧な大学生の方に感謝の意も込めて、就職活動までサポートするプログラミングスクール「レバテックカレッジ」を紹介します。↓

Levtech-college

「自走力」のあるエンジニアを最短3ヶ月で目指せるカリキュラムが月額30,000円で用意されていて、 現段階の「目指す姿が曖昧で何から手をつければいいかわからない状態」から脱却できます。

自分は実際にIT企業で働いていますが、「自走力」のあるエンジニアの方にはいつも助けられています。

なので、目指す姿が曖昧な人はとりあえずレバテックカレッジが導いてくれる 「自走力のあるエンジニア」を目指してみるのはスタートダッシュとしてはアリです。

レベルアップしてからジョブチェンするのはRPGでも常套手段ですし、 レバテックカレッジで一通りのスキルを習得してから自分の目指す姿を再定義するといいかもです。

「自走力のあるエンジニア」って実際どんなエンジニアなの? 何から手をつければいいかわからないから教えて欲しい、 という人は上のテキストリンク/画像リンクから「無料相談会」への申し込みをお願いします。

よきエンジニアライフを!