🤖

Git Commit時のメッセージをさらに踏み込んで

2025/01/09に公開

概要

前の記事 https://zenn.dev/masaki_mori72/articles/8ccc180632ba50git commit コマンドには想像以上に多くのオプションや使い方が存在していることに触れました。

さらにコミットメッセージに絞って git commitコマンドを調べていきます。

コミットメッセージをVisutal Studio Codeで入力する

vscodeを使ってコミットメッセージを記載する
git config --global core.editor 'code --wait'

# commitを実施する
git commit

普段はGit のデフォルトエディタ(vi, vim, nanoなど)でコミットメッセージを編集していますが、慣れた環境を使いたいときはコンフィグを更新してみましょう。

特にWindowsのGit Bash環境だと日本語入力が変な挙動をすることがあるので外部エディタを使うのはおすすめです

コマンドラインから複数行を入力する

コマンドラインから複数行をスムーズに入力する裏技。オプションやシェルの特性をうまく使うことでミスなく効率的にメッセージを入力できます。

複数行を工夫して入力する
# m オプションを2回使う
git commit -m "コミットの概要" -m "ここから詳細メッセージを数行書くことができます。"

# ヒアドキュメントを使う(一部のシェルで可能)
git commit <<EOF
コミットのタイトル

コミットの詳細をここで書く。
EOF

コミットメッセージのテンプレートを使う

コミットメッセージにテンプレートを設定できます。チームでテンプレートを共有して統一したコミットメッセージにするのはチーム開発で役立ちそうです。

例えば、今回は .gitmessage.txt というファイルをテンプレートファイルとして使ってみます。(名前はなんでもいいので適宜読み替えてください)

.gitmessage.txt
# 1行目はタグとタイトル
<バージョンタグ> : <修正タイトル>

# 詳細メッセージや変更点を書いていく

テンプレートを作成したらコンフィグから設定します。

コンフィグにテンプレートを登録する
git config --global commit.template ~/.gitmessage.txt

テンプレートについては他の方で参考になるルールもありますので検索していくつか見てみるといいかもしれません。今回はあくまで機能紹介なのでテンプレートの良し悪しは議論しません。

コミットメッセージをファイルから読み込む

Fオプションを使ってファイルからコミットメッセージを読み込む
git commit -F <メッセージを記載したファイル>

コミットメッセージを自動化したり、あらかじめ変更ログを用意している場合はパイプを使わなくても直接ファイルを入れることも可能です。

Diffを見ながらコミットメッセージを記載する

verboseオプションを記載すると差分を見ながらコミットメッセージを書けます
git commit -v

Github環境でIssueと連携する

Github環境を使っている場合は特殊なコミットメッセージを挿入できます。
# + Issue 番号を記述すると自動リンクになります(例: #123)。GitHub なら Close #123 とすると、プルリクやコミットがマージされたタイミングで Issue が閉じることもできます。

詳しくはGithub公式ドキュメントを参考にしてください。
https://docs.github.com/ja/issues/tracking-your-work-with-issues/using-issues/linking-a-pull-request-to-an-issue

Discussion