読者です 読者をやめる 読者になる 読者になる

commit --amend 時にコミットログの入力を省く

git

git commit --amend を使うと、直前のコミットでやり忘れた変更を付け足せるのでとても便利。
でも、多くの場合は変更部分に typo を見つけた場合とかファイルを追加し忘れていた場合などで、コミットログの編集を行うことはほとんどない。でも --amend をするとコミットログの編集用にエディタが立ち上がる。すぐに終了すればいいんだけど、エディタって場合によっては立ち上がるの遅いし必要ないなら立ち上がってほしくない。これを避ける方法。

git commit --amend -C HEAD

これで OK。-C は既存のログメッセージを再利用するオプション。
私は以下のように alias を設定している。

cia = commit --amend -a -C HEAD

私は -a を付けるタイプ。ここは好みで。

ついでに日時を更新する

git commit --amend では、コミット日時は変更されない。でも、やはり最終的なコミットをしたのは --amend の時点だしコミット日時も更新したいってこともあると思う。というか私はしたい。ので、その方法。

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

これで OK。ちなみに何気なく試したらできたので、これでいける根拠はよくわかってない。man git-commit には --date の値は、Git内部形式(UNIXタイムとタイムゾーン)、RFC2822、ISO 8601のどれかと書いてあるけど、なんでこれでいけるんだろ。
私は以下のように alias を設定している。

cin = commit --amend -a -C HEAD --date=now

なんで n にしたのかは忘れた…。なんでだろ。まあ好きな名前を付ければいいと思います。