4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

peco で過去のコミットメッセージを再利用する

Last updated at Posted at 2015-01-24

過去のコミットメッセージに倣って書くことで、過去のコミットと似た変更を加えたという意味を伝えることができます。

「過去のコミットメッセージに倣って書く」ため、主に次の手順をとっていました。

  • git log --oneline してコミットの意図と似たものをページャで検索
  • 検索結果の中から似たコミットメッセージをコピー
  • git commit -em'{ペースト}'

peco を使ったところ、これらの作業がだいぶ楽になりました。
詳細はアニメGIFのとおりです。

動作

$ cat ~/bin/git-comm
$ git status 
$ git comm
$ git show

0uYN24ceRs.gif

中身

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 をコミット対象のファイルのコミットメッセージに限定する、というのも良さそうです。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?