今回はこういった疑問にお答えします。
この記事を最後まで読めば、「適切なコミットメッセージの書き方」が理解できるでしょう。
この記事が、エンジニアとしての仕事のクオリティを上げる上で、少しでも参考になれば幸いです。
【結論】Gitのコミットメッセージにはコードの”Why”を書こう
結論から言うと、コミットメッセージには以下の内容を書くべきです。
コードの”Why(なぜ)”
なぜなら、業務の中でコミットメッセージを参照するのは、以下のような場面だからです。
作業の中で「なぜこのような実装になっているのか」を調べたいとき
逆に、これ以外でわざわざ過去のコミットメッセージを参照することはありません。
「コミットメッセージにはコードのWhyを書くべき」という話については、以下の@t_wadaさんのツイートも参考になります。
コードには How
テストコードには What
コミットログには Why
コードコメントには Why notを書こうという話をした
— Takuto Wada (@t_wada) September 5, 2017
次に、よりイメージを深めるために、コミットメッセージの良い例と悪い例を見てみましょう。
【Git】コミットメッセージの良い例と悪い例
例えば、以下のような実装があるとします。
// 何かしらの処理 sleep(10);
これを見ただけでは、「なぜsleepがあるのか」、そして「なぜ10秒なのか」が分かりません。
そこで、コミットメッセージを見に行きます。
そのとき、悪いコミットメッセージには以下のように書かれています。
“sleepを追加”
一方、良いコミットメッセージには以下のように書かれています。
“〇〇のため、sleepを10秒に設定”
悪い例だと、やったこと(見ればわかること)しか書かれていないため、コードの意図は全く読み取れません。
一方、良い例ではしっかりと「理由」が書かれているため、コードの意図を明確に読み取ることができます。
良いコミットメッセージが与える効果
「良い」コミットメッセージを書くことによって得られるメリットは以下の二つです。
- コードの変更容易性が向上する
- 自身の評価を高めることができる
コードの変更容易性が向上する
一つ目は、コードの変更容易性が向上する点です。
意図が分からないコードほど変更が怖いものはありません。
なぜなら、その一行を変更することで最悪システムが壊れる可能性もあるからです。
一方、コミットメッセージにコードのWhyが書かれている場合は、そのコードの「影響範囲」が掴みやすくなるため、圧倒的に変更がしやすくなります。
ソフトウェアにとって「変更しやすさ」ほど重要なものはありません。
柔らかさ(変更しやすさ)こそがソフトウェアをソフトウェアたらしめているものだからです。
その意味でも、適切なコミットメッセージを書くことは非常に重要です。
自身の評価を高めることができる
コミットメッセージには、自分の名前が刻まれます。
そのため、適切なコミットメッセージを書けば、将来的に自分の評価を高めることができるし、逆に適当なメッセージを書けば、自分の評価を下げてしまいます。
自分を助ける意味でも、周囲のエンジニアを助ける意味でも、コミットメッセージは適切に記述するようにしましょう。
【Git】コミットメッセージテンプレート
コミットメッセージは、基本的には以下のように記述すると良いでしょう。
What(何をしたか)
Why(なぜその実装をしたか)
一行目にコードのWhatを書き、二行目、もしくは一行空けて三行目にコードのWhyを書きます。
例えば、以下のような形です。
sleepを10秒に設定
〇〇のため
このような形にすることで、GitHub上では以下のように表示されます。
ただ、もちろん書き方自体は自由です。
以下のように一行で書いても構いません。
〇〇のためxxした
本質的に重要なのは、コードの”Why”をコミットメッセージに含めることです。
それさえ守れていれば、どんな書き方でも問題はありません。
Gitのコミットメッセージには何を書くべきか? まとめ
今回は、「コミットメッセージにはコードのWhyを書くべき」という話をしてみました。
コミットメッセージは、慣れてくるとついつい手を抜いてしまいがちです。
しかし、安易に適当なコミットメッセージを書いてしまうと、のちの開発者や自分を苦しめることに繋がってしまいます。
ソフトウェアの質を上げるためにも、自分を含めた周りの開発者を助けるためにも、目の前の一つ一つのコミットメッセージにこだわりながら仕事(作業)をしていきましょう。
最後まで読んでいただきありがとうございました。
この記事が、エンジニアとしてGitを使って開発を進める上で少しでも参考になっていれば幸いです。