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

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

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

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

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

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

pullの説明を追加

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

commitの説明を追加

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

addの説明を追加

commit 82568876240cd7029a71c1752bbdb489fa750544
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 82f0447 addの説明を追加

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

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

addの説明を追加

commit 82568876240cd7029a71c1752bbdb489fa750544
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の説明を追加