コンソール上でgit commitするときに、前回のコメントを基に書き換えてコミットしたいときがちょくちょくあります。コメント中のキーワードをまた使うときや、amendで書き直したりするときとか…
git logでもちろん確認できますが、いちいち確認するのも面倒。
そんな面倒を解決するシェルスクリプトを作ってみました。
スクリプト
わずか2行。
COM=$(git log -n 1 --pretty=format:"%s")
echo -n "git commit -m '$COM'" | pbcopy
解説
git logで前回のコメントを取得して、git commitコマンドに仕立てて、クリップボードに格納する、という流れです。
1行目
[変数]=$(コマンド)
は、変数にコマンドの実行結果を確認する処理です。git logにオプション指定していますが、-n [個数]
は何個コミットを取得するか、--pretty=format:"%s"
は、コミットのコメントのみ出力する書き方です。
つまり、最新1回分のコミットのコメントのみ出力というコマンドの結果を、COMという変数に取り込むという処理になります。
2行目
echoで実行した結果を、pbcopyでクリップボードに格納しています。
echoのオプション-n
は、echoの出力結果の末尾で改行しないという指定。これを忘れるとペーストしたときに一気に実行までされてしまうので書き換えができなくなってしまいます。
pbcopyはmacOSのコマンドで、渡された出力をクリップボードに格納する機能になります。便利。
おわりに
いまさっき作ったばかりでまだ使ってないので、便利かどうかは…?投稿の中身がほとんどコマンドのオプション説明なのはご愛嬌。