次はインデックスや指定したコミットの内容でファイルを復元する方法について学びます。
現在の状態(状態10)は以下の様になっています。
状態 10 (再掲)
ワーキングツリー
インデックス
ローカルリポジトリ「gitlocal」
HEAD
"piyo.txtを更新(S9)"
|
← |
HEAD~
"hoge.txtを更新(S8)"
|
← |
HEAD~2
"piyo.txtを追加(S5)"
|
← |
HEAD~3
"hoge.txtを追加(S4)"
|
(1) ワーキングツリーにあるファイルをインデックスの内容で復元
まずはワーキングツリーにあるファイルをインデックスの内容で復元する方法です。
実際の開発中はよく使うコマンドです。
では演習として hoge.txt をインデックスの内容で復元してみましょう。
すると次の状態 11 になります。
ワーキングツリーの hoge.txt の内容がインデックスの hoge.txt の内容に戻っていることに注目して下さい。
状態 11
ワーキングツリー
インデックス
ローカルリポジトリ「gitlocal」
HEAD
"piyo.txtを更新(S9)"
|
← |
HEAD~
"hoge.txtを更新(S8)"
|
← |
HEAD~2
"piyo.txtを追加(S5)"
|
← |
HEAD~3
"hoge.txtを追加(S4)"
|
(2) ワーキングツリーにあるファイルを指定したコミットの内容で復元
次はワーキングツリーにあるファイルを指定したコミットの内容で復元する方法です。
では演習としてワーキングツリーの hoge.txt を HEAD~2 の hoge.txt の内容で復元してみましょう。
すると次の状態 12 になります。
ワーキングツリーの hoge.txt の内容は HEAD~2の内容に戻っていますが、インデックスと HEAD の hoge.txt の内容はそのままであることに注目して下さい。
状態 12
ワーキングツリー
インデックス
ローカルリポジトリ「gitlocal」
HEAD
"piyo.txtを更新(S9)"
|
← |
HEAD~
"hoge.txtを更新(S8)"
|
← |
HEAD~2
"piyo.txtを追加(S5)"
|
← |
HEAD~3
"hoge.txtを追加(S4)"
|
(3) アンステージ ( インデックスにあるファイルを HEAD の内容に復元 )
最後はインデックスにあるファイルを HEAD の内容に復元する方法です。
この行為は「アンステージ」と呼ばれ、ステージング(git add)をキャンセルしたい時に良く利用されています。
では演習として hoge.txt をアンステージしてみましょう。
すると次の状態 13 になります。
インデックスの hoge.txt の内容は HEAD の hoge.txt 内容に戻っていますが、ワーキングツリーの hoge.txt の内容はそのままであることに注目して下さい。
状態 13
ワーキングツリー
インデックス
ローカルリポジトリ「gitlocal」
HEAD
"piyo.txtを更新(S9)"
|
← |
HEAD~
"hoge.txtを更新(S8)"
|
← |
HEAD~2
"piyo.txtを追加(S5)"
|
← |
HEAD~3
"hoge.txtを追加(S4)"
|