修正したファイルをGitで元に戻してみる
修正したファイルを元に戻してみる。
現在の状態
前回の作成したリポジトリの中身を少し変更して、
現状、sample1.txtとsample2.txtの2ファイルがある状態。
$ ls
README.md sample1.txt sample2.txt
$ git status # On branch master nothing to commit (working directory clean)
修正する
ファイルをいくつか修正する。
・sample1.txtを変更
・sample2.txtを削除
・sample3.txtを作成
$ vi sample1.txt $ rm sample2.txt $ touch sample3.txt
現在の状態は下記の通り。
$ ls
README.md sample1.txt sample3.txt
$ git status # On branch master # Changed but not updated: # (use "git add/rm <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: sample1.txt # deleted: sample2.txt # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # sample3.txt no changes added to commit (use "git add" and/or "git commit -a")
元に戻す
git checkout ファイル名
でファイルを元に戻すことができる。
$ git checkout sample1.txt $ git checkout sample2.txt
ファイルが元に戻ってる。
$ ls
README.md sample1.txt sample2.txt sample3.txt
$ git status # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # sample3.txt nothing added to commit but untracked files present (use "git add" to track)
新規作成したファイルには使えない。
$ git checkout sample3.txt error: pathspec 'sample3.txt' did not match any file(s) known to git.
git checkout .
でまとめてもとに戻すこともできる。
(ただし、まとめて戻した場合も、新規作成したファイルはそのまま)