うなすけとあれこれ

2015年03月10日

Gitのコミットメッセージの2行目に何か書くとどうなるのか?

Gitのコミットメッセージの書き方

Gitのコミットメッセージの書き方は、多くのwebサイトや書籍では2行目を空行とする、と説明している。

Git ではコミットメッセージの形式に関して制約はありませんが、1 行目にコミットの全体的説明を 50 字以内で記述し、2行目は空白行とし、3行目以降に変更内容の詳細を記述するのが標準的な形式です。

Atlassian Gitチュートリアル The git commit Commandより

GitHubのOS X用クライアントでは、そもそもコミットメッセージの2行目に何かを書くことはできない。では、書くとどうなるのか。

実践

リポジトリを新規に作成し、README.mdを作成した。そしてコミットメッセージを以下のように記述して、コミット。 2行目に記述があるコミットメッセージ プラグインか何かの働きかと思うが、2行目が注意色になっていて、あからさまな警告を感じるが、何もエラーメッセージを吐くことなくコミットできた。

そしてコミットログを表示したのがこれ。しっかり2行目も表示されている。(メルアドは隠した) 2行目のメッセージも表示されている

その後、2行目を記述しないコミットを同様に行ったが、問題なく出来た。 普通のコミットメッセージ コミットログも。 2つのコミットのlog

GitHubではどのように見えるのか確認したところ、webではこのように表示されている。 githubでの2行目の表示 普通のコミットメッセージはこのように。 普通のコミットメッセージの表示

GitHub for Macでは、すこし小さく表示されているように見える。 GitHub for Macでの2行目 普通のコミットメッセージは、こう。 普通のコミットメッセージのGitHub for Mac

bitbucketでも、このように特に問題なく表示された。 bitbucketの2行目

このように、コミットメッセージの2行目になにか書いても特に問題はないように見受けられる……が、git logをするとおかしなことになる。

git logの表示が

git logでoneline表示をすると、このように表示される。 複数行が表示される 2行目を記述したコミットメッセージの1行目、2行目、3行目がひとつの行に表示されている。

そこで、このように3行目が長い(2行目はそれほどでもない)コミットメッセージを記入し、onelineで表示させるとどうなるだろうか。 3行目が長いコミットメッセージ

結果、こうなった。どうやらgit log –onelineは、コミットメッセージの初めの空行までを読み取って1行に出力する動作をするようだ。(空行をはさんだ後の文章は表示されていない)ソースコードを読んでないので推測だが。 長いコミットメッセージのgit log

まとめ

gitのコミットメッセージの2行目に何かを書いたとして、それが何らかの不具合を引き起こすことはないと思われるが、例えば今回実験しなかったgit format-patchやgit amではどのようになるかわからない。そもそも歴史的慣習を打ち破ってまで2行目に何か書きたい需要があるとも思えない。

コミットメッセージの2行目は空けよう!

2015年03月10日