Skip to content

Latest commit

 

History

History
101 lines (71 loc) · 6.39 KB

commit-message.md

File metadata and controls

101 lines (71 loc) · 6.39 KB

Gitのコミットメッセージのガイドライン

このガイドラインでは、いくつかの状況を前提としています。

  • 1コミットに1つの対応とする(WIPフローなどには対応していない)
  • GitHubかBacklogを使用している
  • SourceTreeのようなアプリケーションを使用している(CLIの説明はオプション)
  • ベストよりもベター(誰でも簡単に導入できる)

コミットメッセージに書くこと・書かないこと

コミットメッセージには「何を」「なぜ」したのかを書きます。
下記のように5W1Hに当てはめたときに、「いつ」「どこで」「誰が」「どうやって」はコミットメッセージ以外で分かるからです。

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

コミットメッセージでは、「何をしたのか?」「なぜそれをしたのか?」を伝えることを主題とします。

コミットメッセージのフォーマット

コミットメッセージは以下のフォーマットを使用します。

<Prefix>: <Subject>

<Body>

<Footer>

<Subject>はコミットのタイトル、<Body>はコミットの本文、<Footer>はコミットの補足です。
<Prefix>:<Subject>の間は半角スペースを1つ入れてください。
<Subject><body>の間は空行を1つ挟んでください。空行がないと、git log --onelineもしくはgit log --pretty=oneline --abbrev-commitを実行したときに<Subject><body>が1行になって出力されてしまいます。視覚的に分離することで、読みやすくするという目的もあります。

<Prefix> 何をしたのかを動詞で伝える

<Prefix>には、そのコミットで何をしたのかを英語の動詞で伝えます。
以下の動詞をベースにします。

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

Fixはバグの修正専用に使うこともありますが、ここではコードなどの修正をまとめてFixとしています。
Updateはコード自体の更新には使いません。パッケージ(ライブラリ)やドキュメントをアップデートしたときに使います。
Improveはパフォーマンス改善のようなリファクタリングをしたときに使います。
Remove(除去、一部を取り除く)とDelete(削除、完全に消す)は使い分けるほうが正確に伝えられますが、ここでは除去・削除含めてRemoveとしています。

<Subject> 何をしたのかを文章で伝える

<Subject>には、そのコミットで何をしたのかを文章で伝えます。
以下の点に注意してください。

  • 50文字未満(もしくは72文字未満)に収める
    • 長すぎると内容が把握しにくい
    • GitHubでは50文字を越えると警告、72を越えると省略されてしまう

英語の場合は以下の点にも注意してください。

  • 大文字で始める
  • 動詞で始める
  • ピリオドを省略する

<Body> なぜそれをしたのかを文章で伝える

<Body>には、なぜ追加や修正、削除が必要だったのかを文章で伝えます。
リスト表示(-*で始める)や改行・空行を入れて読みやすくしてください。

自己文書化(コメントがなくてもコードの意図が分かる)状態がベストですが、それが難しい場合はコメントをコードに残します。 コードを読むときに、わざわざコミットメッセージは探さないですよね。

コミットメッセージにも何をしたのかを残すこともできます。ただし、コード側でも充分に説明するようにしてください。

<Footer> 補足情報を伝える

<Footer>には、そのコミットの元になるイシュー番号(課題キー)を載せます。

GitHubにもBacklogにもイシュー番号(課題キー)をコミットメッセージに載せると、イシュー(課題)ページにコミット情報を登録することができます。
また、キーワードを含めると、状態も変更することができます。

参考記事