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