ホーム > バージョン管理 > gitで直前のコミットを取り消す。(git reset)

gitで直前のコミットを取り消す。(git reset)

コミットした後に小さなミスを修正したい場合に、直前のコミットを取り消す。

$ git reset --soft HEAD^

これは、最新(HEAD)の1つ前のバージョン(HEAD^)にリセットする。ということなので、直前のコミットを取り消す動作となる。
HEADは、最新のコミットで、HEAD^は、1つ前、HEAD^^は2つ前のコミットになる。
もちろん、コミットのハッシュ値を使ってもOK。

「–soft」は、作業ツリーには変更を加えない指定、代わろに「–hard」を指定すれば、作業ツリーに加えた変更も元に戻る。
※間違えてgit reset –hard した場合は、慌てずに「git reflog」で復活。
ref. http://subtech.g.hatena.ne.jp/secondlife/20090629/1246255508
ref. http://d.hatena.ne.jp/magicalhat/20091030/1256904495

なお、リセットされたコミットの内容は、「ORIG_HEAD」という名前で参照可能。

$ git diff ORIG_HEAD

で、現在の作業ツリーとコミットされていた内容で差分を表示出来る。
リセットして、修正後に再度コミットを行う場合は、次のようにすると、前回のコミットメッセージの内容が表示されるので、再編集してコミットできる。

$ git commit -a -c ORIG_HEAD

git commitに「–amend」オプションをつけて実行すると直前のコミットを訂正することが可能。

$ git commit
(修正)
$ git commit --amend

これは、以下の操作とほぼ同じ。

$ git commit
$ git reset --soft HEAD^
(修正)
$ git commit -c ORIG_HEAD

ref. http://sourceforge.jp/magazine/09/03/16/0831212/3

このエントリーをはてなブックマークに追加
はてなブックマーク - gitで直前のコミットを取り消す。(git reset)
Share on Facebook
Post to Google Buzz
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed

【関連記事】

  1. githubにリポジトリを作成して使う。
  2. 2.7.1 SubversionのリポジトリをGitで使う
  3. 2.1.2 gitで日本語ファイル名が数値コードで表示される問題の対処

コメント:0

コメントフォーム
入力した情報を記憶する

トラックバック:0

この記事のトラックバック URL
http://redtower.plala.jp/2010/09/30/git-git-reset.html/trackback
トラックバックの送信元リスト
gitで直前のコミットを取り消す。(git reset) - redtower's memo より

ホーム > バージョン管理 > gitで直前のコミットを取り消す。(git reset)

検索
フィード
メタ情報

ページの上部に戻る