背景
チーム開発をしていると、コミットメッセージにもルールを設けておきたくなる。
そういう時に便利なコミットテンプレート。
.gitmessageを追加すれば、コミット時に定型文を表示してくれる。
プロジェクトでEmoji Prefixを導入したため、
文化に慣れるまでは絵文字の役割や入力方法などを覚えるのが手間だったこともあり、テンプレートを設定しておきたくなった。
しかし、(普段僕はCLIでGitを操作するので知らなかったのだが)SourceTreeやIDEプラグインといった、
GUIでのコミットには.gitmessageのコメントアウトが反映されないとのこと。
参考:https://qiita.com/mfks17/items/e68adc058e1a9e519807#-todo
チーム内ではGUIでGit操作を行っているメンバーもいるため、環境に依存してテンプレートが使えない人が出てくるのを避けたい。
何とかできないか調査した。
結論
↓を、.gitが格納されているディレクトリで入力する。
git config --add commit.cleanup strip
グローバルに設定したくなければ--localオプションをつけるなり、includeIfセクションで分岐させるなりすればよい。
もちろん.gitconfigに直接書いてもよい。
[commit]
cleanup = strip
何をやっているのか?
--cleanup=<mode>オプションは、コミットする前にコミットメッセージを整形する方法を指定する。
Git | git-commit-Documentation
変数の種類
strip
先頭と末尾の空白行、末尾の空白、コメント(#が前頭についた行)を削除する。
whitespace
先頭と末尾の空白行、末尾の空白を削除。ただし、コメントを削除しない。
SourceTreeの設定はデフォルトでコレかdefaultになっている可能性がある。
default
メッセージを編集するときはstrip、それ以外の時はwhitespaceが適用される。
verbatim
メッセージを変更しない。
scissors
基本的にwhitespaceと同じだが、
# ------------------------> 8 ----------------------- -
というコメント以下の行がすべて削除される。
SourceTreeで設定する方法
GUIツールでGitを操作している人の中にはCLIに苦手意識を持っている人もいるので、操作手順をまとめた。
- 作業するリポジトリをSourceTreeで開く
- 右上の「設定」>「コミットテンプレート」からコミットテンプレートを設定。設定する範囲はプロジェクトや開発ルールに合わせて
- CLIでリポジトリの場所まで移動
-
git config --add commit.cleanup stripを入力
cd path/to/dir # path/to/dir をテンプレートを適用するリポジトリの場所に変更する
最後に
コミットメッセージはキレイにしましょう![]()
参考
Gitのコミットコメントを絵文字Prefixにして楽しく開発する | Qiita
Emojiで楽しく綺麗なコミットを手に入れる | Goodpatch Blog