私はGitユーザーとして定期的にこの状況に遭遇します。つまり、--amend
またはrebase -i
withフィックスアップコミットに適合しない方法で1つ以上のコミットをやり直す必要があります。通常、私は次のようなことをします
git reset HEAD~1
# hack, fix, hack
git commit -a
# argh .. do I need to retype my message?
私は賢明な合成コミットメッセージを非常に深刻に受け止めています。通常、それらには変更の参照と正当化を伴うより大きなテキストが含まれます。これまで、ソートされていないgit reflog
、git log
およびコピーアンドペーストプロセスを介して古いコミットメッセージを回復するための長いプロセスに非常に悩まされています。
これに取り組む方が良いですか?そして、私のコミットが複数のコミットで構成されている場合、どのようになりますか?
編集:これについて少し考えた後、私が探しているのはいくつかだと思いますgit stash-fixup/amend commitsが適切でないコミットメッセージのための機能。
git reset
の後、このワンライナーで実行できます。
git commit --reuse-message=HEAD@{1}
またはさらに短い:
git commit -C HEAD@{1}
@ user2718704 で指定された他のオプションを使用できます。
「git commit」コマンドを実行するときは、次のオプションを確認する必要があります。
再利用するには、
--reuse-message=<commit>
再利用時に編集するには、
--reedit-message=<commit>
著者を変更するには、
--reset-author
ハッキング、修正、ハッキングしてからgit commit --amend --no-edit
;したがって、元のコミットメッセージを保持します。
複数のコミットで機能するようにするには、最新の変更で一時的なコミットを作成し、インタラクティブリベースを使用して、以前のコミット(良いコミットメッセージを含む)を新しい一時的なコミットで押しつぶし、古いコミットのコミットメッセージを保持します。
git commit --reset-author -c <commit>
、編集および現在の時刻でコミットメッセージを再利用します。