Gitのコミットメッセージの書き方は、多くのwebサイトや書籍では2行目を空行とする、と説明している。
Git ではコミットメッセージの形式に関して制約はありませんが、1 行目にコミットの全体的説明を 50 字以内で記述し、2行目は空白行とし、3行目以降に変更内容の詳細を記述するのが標準的な形式です。
Atlassian Gitチュートリアル The git commit Commandより
GitHubのOS X用クライアントでは、そもそもコミットメッセージの2行目に何かを書くことはできない。では、書くとどうなるのか。
リポジトリを新規に作成し、README.mdを作成した。そしてコミットメッセージを以下のように記述して、コミット。 プラグインか何かの働きかと思うが、2行目が注意色になっていて、あからさまな警告を感じるが、何もエラーメッセージを吐くことなくコミットできた。
そしてコミットログを表示したのがこれ。しっかり2行目も表示されている。(メルアドは隠した)
その後、2行目を記述しないコミットを同様に行ったが、問題なく出来た。 コミットログも。
GitHubではどのように見えるのか確認したところ、webではこのように表示されている。 普通のコミットメッセージはこのように。
GitHub for Macでは、すこし小さく表示されているように見える。 普通のコミットメッセージは、こう。
bitbucketでも、このように特に問題なく表示された。
このように、コミットメッセージの2行目になにか書いても特に問題はないように見受けられる……が、git logをするとおかしなことになる。
git logでoneline表示をすると、このように表示される。 2行目を記述したコミットメッセージの1行目、2行目、3行目がひとつの行に表示されている。
そこで、このように3行目が長い(2行目はそれほどでもない)コミットメッセージを記入し、onelineで表示させるとどうなるだろうか。
結果、こうなった。どうやらgit log –onelineは、コミットメッセージの初めの空行までを読み取って1行に出力する動作をするようだ。(空行をはさんだ後の文章は表示されていない)ソースコードを読んでないので推測だが。
gitのコミットメッセージの2行目に何かを書いたとして、それが何らかの不具合を引き起こすことはないと思われるが、例えば今回実験しなかったgit format-patchやgit amではどのようになるかわからない。そもそも歴史的慣習を打ち破ってまで2行目に何か書きたい需要があるとも思えない。
コミットメッセージの2行目は空けよう!