改めて考える、「Gitのコミットメッセージを能動態や命令調で書く意味」:命令調のGitコミットメッセージの問題点とは
TechTargetは「Gitコミットメッセージの能動態または命令調の書き方」に関する記事を公開した。「開発者はGitのコミットメッセージを命令形で書くべきだ」という意見があるが、本当にそうだろうか。言語的背景やオープンソースプロジェクトでの採用傾向などを踏まえて著者が問題提起する。
TechTargetは2024年10月2日(米国時間)、「Gitコミットメッセージの能動態または命令調の書き方」に関する記事を公開した。
命令調のコミットメッセージの書き方
専門家の見解では「開発者はGitコミットメッセージを命令調で書くべきだ」という。能動態とは何か、命令調で話すとはどういうことかを長々と議論することも可能だが、次の文章につながる表現を考えれば自然と命令調のメッセージは書ける。
「このGitコミットメッセージを適用する場合は……」(If applied this Git commit message will...)
命令調の例
ここで簡単なクイズだ。次の3つのGitコミットメッセージの中で、命令調で書かれているのはどれか。
- 「バッファーオーバーフローの問題を修正した」(Fixed the buffer overflow issue)
- 「バッファーオーバーフローの問題を修正する」(Fixing the buffer overflow issue)
- 「バッファーオーバーフローの問題を修正せよ」(Fix the buffer overflow issue)
3番目のメッセージを選んだのなら、命令調はもうマスターしていると言っていいだろう。これで、命令調のGitコミットメッセージの書き方は理解できたはずだ。
Gitコミットメッセージは過去形で書くべきか?
ただし、著者としては「能動態で命令調のGitコミットメッセージを書きなさい」という指示は、全くのナンセンスだと考えている。その理由とは、完了した作業について考えるのに“命令形”は自然な方法ではないからだ。コミットメッセージは、コードの作成後に書くもので作成前に書くものではない。個人的には、実行した内容を説明するのであれば、過去形を使う方が理にかなっていると考える。
オープンソースプロジェクトのコミットメッセージを見てみても、命令調のメッセージはあまり目につかない。著者が尊敬する、最も革新的な製品に取り組むオープンソースプロジェクトのソフトウェア開発者たちも、Gitコミットメッセージを命令形にするという要件を守ることに特にこだわっていない。それでも成功している彼らの実例を見れば、このルールに縛られる理由はないと感じる。
また、「命令調にせよ」という指示は英語圏でよく見られる。これは英語が比較的命令形を多用する言語だからだ。だが、全ての国の言語が英語の構文になっているわけではない。そのため、英語の構文を全ての開発者に押し付けることは個人的には正しいとは思えない。
Gitコミットメッセージの標準
著者が好きな格言に「正しい答えなどなく、あるのは間違った答えだけだ。間違っていなければそれでよい」というものがある。
Gitコミットメッセージの標準やベストプラクティスは確かに存在するが、チームごとに従うべき正しいガイドラインや表記法は異なる。チームが、Gitコミットメッセージは能動態または命令調でなければならないと決めているなら、従わなければならない。それに違反することは「間違っている」ことを意味するので、避けるべきだ。
一方、チームが命令調を指示していないなら、Gitコミットメッセージは、それを適用した場合に「何が起こるか」ではなく「何をしたか」を説明すべきだ。命令調のGitコミットメッセージは、Gitリポジトリ内のコミットを精査するのを困難にする。バグを追跡したり、致命的なエラーの原因を見つけたりする際には、コミットを見つけやすくするのが最優先となる。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- DevOpsの長年の課題を解決するかもしれない「QAOps」 DevOpsの違いとメリットを紹介
TechTargetは「QAOpsとDevOpsの違い」に関する記事を公開した。「QAOps」は「DevOps」を拡張するもので、長年にわたって批判されてきたDevOpsのある問題を解決する可能性がある。 - 「CI/CD」実践のポイント 取り組む前に把握しておきたいメリットと課題
DevOpsの最初のステップとして、CI/CDパイプラインの作成から着手するチームは珍しくない。着手に当たっては、CI/CDの基本的なメリットや課題を理解しておく必要がある。 - 「死亡交通事故ゼロ」を目指すSUBARUのAI開発で、コンテナ、Kubernetes、CI/CDはどう生かされているか
「2030年 死亡交通事故ゼロ」を目指し、アイサイトとAI開発を加速させるSUBARUでは、コンテナ、Kubernetes、CI/CDといったクラウドネイティブ技術の活用を加速させているという。SUBARUの金井 崇氏が「Cloud Native Week 2024 春」の基調講演で取り組みを語った。