"git commit --amend" コマンド実行時にコミットログの入力を省略する方法

はじめに

CI/CD パイプラインの動作確認をしていました。 Github へのプッシュを契機にうまく動作するかを見ていました。

何度か git commit --amend コマンドを実行しては git push origin --force-with-lease を実行していたのですが、 git commit --amend するたびにコミットログの入力のためのエディタが起動するのが煩わしくどうにかならないかと思って調べてみました。

別ブランチを作る、別リポジトリを作るなどするべきなのかもしれません。

検証環境

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
$ uname -moi
x86_64 x86_64 GNU/Linux

$ head -n 2 /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"

$ bash -version | head -n 1
GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)

$ git --version | head -n 1
git version 1.8.3.1

-C オプションを指定する

-C オプションを指定し、どのコミットのログを採用するかを指定してやればよいです。

最終コミットのログをそのまま採用したいので、 -C HEAD のように指定してやります。

1
$ git commit --amend -C HEAD

これは便利です。

何度か繰り返し実行したかったので、以下のようにしてコマンドヒストリから呼び出しました。

1
$ git commit --amend -C HEAD; git push origin --force-with-lease;

コミット日時も更新したい場合には --date オプションを指定する

今回は不要でしたが、コミット日時も更新したい場合には --date オプションを指定すれば良いです。

1
$ git commit --amend -C HEAD --date=now

ひとこと

git commit --amend は本来、リモートブランチに対して度々行うべきではないので、 できる限り git push 前のコミット履歴の改変に限定して使いましょう。

参考

以下のサイトを参考にさせていただきました!