git reset --hardで新規ファイルの扱い
$ git --version git version 1.8.3.2 $ touch newfile $ git status -s ?? newfile $ git reset --hard $ git status -s ?? newfile
このようにまだgitに管理されてないファイルはgit reset --hardしても削除されない。これはよい。
ただ、次のように、インデックスに追加した後にgit reset --hardするとファイルが消える。
$ git add newfile $ git status -s A newfile $ git reset --hard $ git statsu -s # no output $ ls newfile ls: newfile: No such file or directory
なんでこうなるのかイマイチよくわからない。
ちなみにcheckoutだとインデックスに追加してようがしていまいが何も影響しない。
$ git status -s ?? newfile $ git checkout HEAD . $ git status -s ?? newfile $ git add newfile $ git status -s A newfile $ git checkout HEAD . $ git status -s A newfile
新規ファイルの扱い以外は`reset --hard`と`checkout HEAD .`は同じ挙動だと思う。たぶん。