Gitコメントのベストプラクティス

GitLabで運用しているGitのコメントフォーマットを考える必要が出てきたので、その検討内容と結果を覚えが来ます。

Gitコメントの方針

上記サイトの記事が、体系的によく纏まっていますので、これをベースにアレンジしたいと思います。

コミットメッセージに書く内容

  • いつ(When):タイムスタンプで分かる
  • どこで(Where):ファイル名とディレクトリで分かる
  • 誰が(Who):author(作者)で分かる
  • 何を(What):コミットのタイトル(Subject)とコミットの本文(Body)で分かる
  • なぜ(Why):コミットの本文(Body)で分かる
  • どうやって(How):コードやdiffで分かる

フォーマット

<Prefix>: <Subject>
空行
<Body>
空行
<Footer>
  1. Prefix 何をしたかを接頭辞で短くあらわします
  2. Subject 何をしたかを短い文章にします
  3. Body なぜそれをしたのかを文章にします
  4. Footer 補足情報を載せます

Prefix

動詞説明
Add:(機能・ファイルなどを)追加する
Fix:(コードなどを)修正する
Improve:(コードなどを)改善する
Update:(パッケージやドキュメントなどを)更新する
Remove:(ファイル名やコードを)除去する
Rename:(ファイル名を)変更する
Move:(AをBに)移動する
Change:(AをBに)変更する

Subject

Subjectには、そのコミットで何をしたのかを短い文章(タイトル)にします。

  • 新機能「xxx」を追加する
  • xxx機能で異常終了する不具合を修正する

50字未満を推奨。72文字未満が制限

Body

Bodyには、追加や修正などが必要だった理由を文章にします。

新機能「xxx」の結合テストのために、プログラムソースを初期登録する。
xxx機能でyyyをした際、プログラムが異常終了した。aaaに原因があったため、bbbするようプログラム対応を行った。

Footer

GitLabのチケット番号を書く
不具合管理情報(不具合ファイル名、不具合番号、不具合タイトルを書く)
ドキュメント名

Gitコメントをテンプレート化する

オープンソースサンプル

git

Linux Kernel

chromium

参考

  • 誰にとってもわかりやすいGitのコミットメッセージを考える
    https://www.tam-tam.co.jp/tipsnote/program/post16686.html
  • Gitのコミットメッセージの書き方
    https://qiita.com/itosho/items/9565c6ad2ffc24c09364
  • いいコミットメッセージの共通点と書き方〜便利なテンプレートやチーム開発時のお作法まで詳しく解説〜
    https://www.praha-inc.com/lab/posts/commit-message
  • gitにおけるコミットログ/メッセージ例文集100の転載
    https://gist.github.com/mono0926/e6ffd032c384ee4c1cef5a2aa4f778d7

プログラム開発

Posted by iwadjp