Open Hiroshiba opened 3 weeks ago
個人的な意見としては、プルリクエストマージ時にそのプルリクエストの番号が書かれて、github上だとすぐにそのリンクへ飛べるのと、問題を考えるのがめんどくさいので、まあコミットメッセージはタイトルだけでいいかなと思い始めました。
ただ自分は1行目以外本当に全くコミットメッセージを見ないので、2行目以降のコミットメッセージを結構見る方がいらっしゃれば意見聞きたいです 🙏
一応私はコミットメッセージを見る人の一人だと思います。
コミットメッセージの本文があることの利点の一つとして、git log
を漫然と見ながら下方向(/)と上方向(?)に検索をかけれることがあると思います。git-log(1)
以外でも、例えばNeovimのNeogitではlogを折り畳みつつ本文部分の検索ができたりします。もちろんキーボードから一時も指を離すことなく。このスタイルであれば10,000行のPR descriptionであってもさほどの影響は無いと思います。
(インスパイア元であるEmacsのMagitも同じことができる…と思ったのですがよく覚えていない)
↓ <Neogit起動のキーバインド>ll/segfault<C-j>
↓ C-mまたはReturn
あとPRのdescriptionをマージメッセージにしているっぽい有名リポジトリを調べてみました。マージ時にわざわざPRの「結論」をまとめ直してメッセージを書いているらしきところもそこそこ目にしました。 (ちなみにですが、有名リポジトリを片っ端から調べてみると"Create a merge commit"方式のリポジトリがかなり多かったです。"Squash and merge"に匹敵するどころがこちらの方がメジャーでは?と思えるほど)
<!-- -->
なども全部入っている)割愛。ただし結構あって、Pythonもそうなはず。
まあGitHubとの相性の悪いGit自体の機能はいくつもありますし、正直コミットメッセージもその一つだと思います。実際ここにいる多くの人はコミットメッセージを全く見ないとは思うので、判断は任せます。
気になって自分も調べてみました。 正直descriptionでも良さそうに思いました! もし定型文がある場合はメッセージを短くしたほうが良さそう。(今のとこほぼないので問題ない)
タイトルのみ https://github.com/vuejs/core https://github.com/microsoft/TypeScript https://github.com/electron/electron // 各commitメッセージを束ねたのをメッセージにしてることもある
descriptionベース https://github.com/elastic/elasticsearch https://github.com/redis/redis https://github.com/flutter/flutter // チェックリストとかは除外
merge commitベース(ここより上は全部squash merge) https://github.com/kubernetes/kubernetes
その他 https://github.com/apache/kafka // JIRAチケットあるものはマージメッセージがない https://github.com/django/django // ? https://github.com/openssl/openssl // リベースマージ?
descriptionベースですが、コミットメッセージ本文はMarkdownとみなされないため```
の中に'#'や'@'が入ってたりするとリンクされてしまうようです。microsoft/onnxruntimeでも結構発生しているみたい。
例: https://github.com/microsoft/onnxruntime/commit/3e934030f48bffc07c92e97a35b33cf2aad2d51f
この問題を避けるならマージ時に「PRの結論」を丁寧に書くのが多分ベストで、次点でタイトルのみ、という感じになるかなと…
なーーーーるほどです・・・ 😇
とりあえずタイトルのみにしようか迷ってます。思考回路こんな感じです。
「タイトルのみにする」か「skip ciされちゃっても良いから全コミットメッセージ含む」かだと、タイトルのみのが実害でなくてマシ・・・・・・・なのかなぁ・・・。
追記)あ! メンテナ次第では「手動でマージ時に書く」もあり!!!
質問の内容
プルリクエストをマージする時、デフォルトでどういうメッセージにするかいくつか選べたりします。
でも結構いろんな条件でいろんな課題が発生するので、何にするべきか薄く意見を募集したいです。
課題
[skip ci]
と書かれたメッセージをマージした時に、mainブランチのCIをスキップされてしまう<detail>
などがあってものすごく長くなってる場合にメッセージがとんでもない量になるhttp://github.com/hoge/fuga/issues/#123
みたいなコメントが入ってるコードがあると、そこへのリンクが張られてしまうかも(要検証)その他
完全に「自転車置き場の屋根の色」なんですが、何か考え出すと楽しいので考えちゃってます。 ご意見募集中です 🙏