6

最後のコミットからファイルセットを再選択することなく、コミットメッセージを編集したいことがよくあります。

git commit file1.c file2.c

コミット メッセージの偶発的なタイプミス。

git commit file1.c file2.c --amend

これは機能しますが、元のコミットからファイルセットを再選択する必要がないようにしたいのですが、誤ってgit commit -a --amend多くの変更を意図せずに追加したことがあります。

git rebase -i HEAD~1then replace pickwith r(re-word)については知っていますが、これは最終的にいくつかの手順になります。

新しいファイルを含めずに、最後のコミットをワンステップで書き換える方法はありますか?

4

3 に答える 3

9

段階的な変更を行わずにメッセージを修正する

ステージング領域にステージングされた変更がない限り、単純に使用できます

git commit --amend

以前のコミットのメッセージを編集するには1 .

段階的な変更でもメッセージを修正する

ただし、ステージングされた変更がある場合は、(または) フラグを と組み合わせて使用​​し--only-o--amendステージングされた変更をコミットせずに、前のコミットのメッセージのみを編集できます。

git commit --amend --only
git commit --amend -o # Shorter

このオプションは、彼の回答で David Ongaroによって指摘されました。

ドキュメンテーション

git commitドキュメントに記載されているように(強調鉱山):

-o
--only  

これまでにステージングされた内容を無視して、コマンド ラインで指定されたパスからのみコミットを行います。これは、コマンドラインでパスが指定されている場合のgit commitのデフォルトの操作モードです。この場合、このオプションは省略できます。このオプションを--amendと一緒に指定する場合、パスを指定する必要はありません。パスを使用すると、すでにステージングされた変更をコミットせずに最後のコミットを修正できます。

1 Minitechなどの言及による。

于 2014-08-19T04:51:52.257 に答える
2

git commit --amend他の引数なしで使用してください。エディターが開き、コミット メッセージを変更できます。

于 2014-08-19T04:30:23.303 に答える
0

できますgit commit --amend -m <new commit message>。もちろん、予防策は、他の回答で述べたように、段階的な変更がないことを確認することです。

于 2014-08-19T06:17:33.160 に答える