[追記] 最後の方、ちょっと不明瞭だったので修正しました。
amend使ったこと無かったのでメモ。
###前提
shell>>
edit comment.rb
edit product.rb
git commit -am "wrong commit"
<<--
(上記のファイルを修正、product.rbを間違ってコミット)
そして、下記の順で変更・修正します:
###間違ってコミットしたファイルをコミットから外す
shell>>
git reset HEAD~1 app/models/product.rb
<<--
(変更は維持されたまま、コミットから外されます:unstageという)
(こうすると、# Changed but not updated:のところに出てくる)
###コミットメッセージの修正
shell>>
git commit --amend
<<--
(メッセージを修正できる)
(+上でcommitから外したファイルを確定する)
###amend時にコミットメッセージを再利用する
via http://www.jukie.net/~bart/blog/git-amend
@onoさんにこの記事を教えて頂いたのですが、筆者の方はコミットメッセージを再利用するgit ammendコマンドを作っておくという技を使っておられるようです:
shell>>
git config --global alias.amend 'commit --amend -C HEAD'
#今後(メッセージはそのままで)コミットを修正したい時は下記でOK:
git amend
<<--
さらに流れ的には、
- コミットしてから、
- さらにファイルを編集、
- それをgit addでファイルを追加、
- git commit --amendで3で追加したのを直前のコミットに加える
というワークフローを使って運用。超こまめにコミットして作業したいときに便利そうです!
posted by
satoko on Fri 25 Sep 2009 at 01:40 with 2 comments
--amendは「commitした後に、debug用のコード消し忘れたに気づいた!」とか、「メッセージtypoした!」というときにとても便利です。