git checkout -f について
git checkout . と違うのは新規作成なソレとか deleted なナニとかも巻戻し、なのかどうか。ちょっと確認してみます。例の場所にある Numbers なリポジトリを clone して云々な方向。
$ git clone git@github.com:gitOkinawaOrganization/GitDOJO.git
で、色々手を入れてみます。
$ cd GitDOJO $ cp ../rbenv.sh . $ rm README.md $ vi Numbers
で、status かくにん してみるに以下。
$ git status # On branch master # Changes not staged for commit: # (use "git add/rm <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: Numbers # deleted: README.md # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # rbenv.sh no changes added to commit (use "git add" and/or "git commit -a")
ここで git checkout . してみるとどうなるか。
$ git checkout . $ git status # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # rbenv.sh nothing added to commit but untracked files present (use "git add" to track)
削除したものは復活してますね。Untracked なソレは無理らしい。ちなみに Untracked なソレは -f でも駄目でした。そもそも git の管理範疇に入っていないので無理と言えば無理なのかどうか。