gitのコミットメッセージをそのままPull Request本文に使う

GitHub での Pull Request のテキストには情報が書いてあるが、git のコミットメッセージだと1行目のタイトルしか書かれていないケースがあるが、個人的には git のコミットメッセージをそのまま GitHub の PR のテキストになるようにしておくと捗る。git のコミットが1つの場合はコミットメッセージの 1行目が Pull Request のタイトル、3行目以降が本文になることを活用した設定について書いておく (複数コミットで 1 Pull Request のときは職人の温かみある作業でうまいことやっときましょう) 。

git のデフォルトだと、コミットメッセージを編集するエディタでのコメント行が # になっている。一方で GitHub の Pull Request で文書構造を作る時は Markdown となるため、見出しに使う # がコメント行としてコミットメッセージから消えてたいへん不便。

そこで自分の場合は、^ を git で使うエディタでのコメント行として扱うようにしている。

% git config --global core.commentchar '^'

若干手を入れていたかもしれないが、差分としてはこうなる。

diff --git a/dot.gitconfig b/dot.gitconfig
index 07e3ef8..a95eae6 100644
--- a/dot.gitconfig
+++ b/dot.gitconfig
@@ -30,6 +30,7 @@
        branch = auto
        interactive = auto
 [core]
+       commentchar = ^
        editor = emacsclient -nw -a ''
        excludesfile = ~/.gitignore
 [diff]

コメント行として ^ を使うようにしたのは、# はデフォルトで Markdown の見出し記法と相性が悪いので最初に対象外とした他、!@ などはコミットメッセージでコード例を記したときに、真偽値を反転する !Ruby だとインスタンス変数を表す @ を忘れた頃に行頭に書いてコメント扱いでコミットメッセージから消えてて泣きそうといった理由。比較的行頭に使わなさそうな ^ を選んだ気がするけれど、このあたりはプラットフォームや経験則に応じて選ぶと良さそう。

昨日 RuboCop に出した PR のコミットを実例に挙げるとこうなる。

github.com

2020年5月6日追記

2018年5月3日に ^ だとRuboCop の警告引用と相性が悪かったため commentchar の値を ~ に変更していた。

github.com