過去のコミットメッセージに倣って書くことで、過去のコミットと似た変更を加えたという意味を伝えることができます。
「過去のコミットメッセージに倣って書く」ため、主に次の手順をとっていました。
-
git log --oneline
してコミットの意図と似たものをページャで検索 - 検索結果の中から似たコミットメッセージをコピー
git commit -em'{ペースト}'
peco を使ったところ、これらの作業がだいぶ楽になりました。
詳細はアニメGIFのとおりです。
動作
$ cat ~/bin/git-comm
$ git status
$ git comm
$ git show
中身
git-comm
#!/bin/sh
candidates=$(git log --format="%s")
message=$(echo "$candidates" | peco)
test "$message" && git commit --verbose --edit --message="$message"
また、.gitconfig に次を追加することでも利用できます(可読性に難有り)。
[alias]
comm = "!f() { \
local candidates=$(git log --format='%s'); \
local message=$(echo \"$candidates\" | peco); \
test \"$message\" && git commit --verbose --edit --message=\"$message\"; \
};f"
候補を変更する
$candidates
を変えて自分が検索しやすいものに変えるといいと思います。
- 重複を削除・ソート・マージコミット除外 (.gitconfig のサンプル)
git log --format='%s' | sort | uniq | grep -v "^Merge"
$candidates
をコミット対象のファイルのコミットメッセージに限定する、というのも良さそうです。