-
Notifications
You must be signed in to change notification settings - Fork 37
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
40a097f
commit 05d183d
Showing
1 changed file
with
90 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
# Gitのコミットメッセージのガイドライン | ||
|
||
## コミットメッセージに書くこと・書かないこと | ||
コミットメッセージには「何を」「なぜ」したのかを書きます。 | ||
下記のように5W1Hに当てはめたときに、「いつ」「どこで」「誰が」「どうやって」はコミットメッセージ以外で分かるからです。 | ||
|
||
- いつ(When):タイムスタンプ | ||
- どこで(Where):ファイル名・ディレクトリ名 | ||
- 誰が(Who):author(作者) | ||
- 何を(What):コミットのタイトル(Subject) | ||
- なぜ(Why):コミットメッセージ(Body) | ||
- どうやって(How):コード・diff | ||
|
||
コミットメッセージでは、「何をしたのか?」「なぜそれをしたのか?」を伝えることを主題とします。 | ||
|
||
|
||
## コミットメッセージのフォーマット | ||
コミットメッセージは以下のフォーマットを使用します。 | ||
|
||
``` | ||
<Prefix>: <Subject> | ||
<Body> | ||
<Footer> | ||
``` | ||
|
||
`<Subject>`はコミットのタイトル、`<Body>`はコミットの本文、`<Footer>`はコミットの補足です。 | ||
`<Prefix>:`と`<Subject>`の間は半角スペースを1つ入れてください。 | ||
`<Subject>`と`<body>`の間は空行を1つ挟んでください。空行がないと、CLIでは`<Subject>`と`<body>`がつながって表示されてしまいます。 | ||
|
||
|
||
## `<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にもイシュー番号(課題キー)をコミットメッセージに載せると、イシュー(課題)ページにコミット情報を登録することができます。 | ||
また、キーワードを含めると、状態も変更することができます。 | ||
|
||
- GitHub: `Closes #123`や`Closes: #123`のようにコミットに含めると、コミット後にイシューもクローズする([Closing issues using keywords - User Documentation](https://help.github.com/articles/closing-issues-using-keywords/)) | ||
- Backlog: `#fix`を含めると「処理済み」になり、`#close`を含めると「完了」に状態を更新する([コミットログでの課題の操作 - Backlog(バックログ)](https://backlog.com/ja/help/usersguide/git/userguide1400/)) | ||
|
||
|
||
## 参考記事 | ||
- [コミットメッセージの書き方 – risacan – Medium](https://medium.com/@risacan/%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9-64aeadd92057) | ||
- [[転載] gitにおけるコミットログ/メッセージ例文集100](https://gist.github.com/mono0926/e6ffd032c384ee4c1cef5a2aa4f778d7) | ||
- [Gitのコミットメッセージの書き方 | POSTD](https://postd.cc/how-to-write-a-git-commit-message/) | ||
- [GitHubで使われている実用英語コメント集 - Qiita](https://qiita.com/shikichee/items/a5f922a3ef3aa58a1839) | ||
- [ネイティブと働いて分かった英語コミットメッセージの頻出動詞10つ - Qiita](https://qiita.com/gogotanaka/items/b65e1b081fa976e5d754) |