チュートリアル3 コミットを書き換えよう! 3. reset

このチュートリアルでは、あらかじめ履歴が準備されているローカルリポジトリを使用します。
こちらからダウンロードしてください。

ここでは、resetを使ってmasterブランチの先頭から二つ分のコミットを削除します。

stepup-tutorial/tutorial3ディレクトリに移動します。このリポジトリの履歴は次の図で表す状態になっています。

logコマンドで履歴を確認してみましょう。

$ git log
commit 0d4a808c26908cd5fe4b6294a00150342d1a58be
Author: yourname <yourname@yourmail.com>
Date: Mon Jul 16 23:19:26 2012 +0900

pullの説明を追加

commit 9a54fd4dd22dbe22dd966581bc78e83f16cee1d7
Author: yourname <yourname@yourmail.com>
Date: Mon Jul 16 23:19:01 2012 +0900

commitの説明を追加

commit 326fc9f70d022afdd31b0072dbbae003783d77ed
Author: yourname <yourname@yourmail.com>
Date: Mon Jul 16 23:17:56 2012 +0900

addの説明を追加

commit 48eec1ddf73a7fb508ef664efd6b3d873631742f
Author: yourname <yourname@yourmail.com>
Date: Mon Jul 16 23:16:14 2012 +0900

first commit

sample.txtファイルを開いて内容を確認します。

サルでもわかるGitコマンド
add 変更をインデックスに登録する
commit インデックスの状態を記録する
pull リモートリポジトリの内容を取得する

resetを使って、コミットを削除します。

$ git reset --hard HEAD~~
HEAD is now at 326fc9f addの説明を追加

sample.txtを開いて、commitとpullの説明がなくなっているかどうか確認してください。また、logコマンドで履歴を確認してください。

$ git log
commit 326fc9f70d022afdd31b0072dbbae003783d77ed
Author: yourname <yourname@yourmail.com>
Date: Mon Jul 16 23:17:56 2012 +0900

addの説明を追加

commit 48eec1ddf73a7fb508ef664efd6b3d873631742f
Author: yourname <yourname@yourmail.com>
Date: Mon Jul 16 23:16:14 2012 +0900

first commit

Note

reset前のコミットはORIG_HEADという名前で参照することができます。間違えてresetしたなどの場合は、ORIG_HEADにresetするとreset前の状態に戻すことができます。

$ git reset --hard ORIG_HEAD
HEAD is now at 0d4a808 pullの説明を追加