2012-02-01 37 views
1

誤って私はrm -rf私のgitリポジトリのディレクトリ。変更はコミットされていないので、私はこの変更を元に戻し、最後のgitコミットに戻したかったのです。私はgit checkout -- <file>を行うことができるNITたファイルが削除されたとしてコミットされていない削除済みファイル(プレーンrmで削除)を最後のgitコミットに戻す方法

# On branch release-1 
# 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) 
# 
#  deleted: dir/file1 
#  [....] 

ので、私が代わりにgit checkout --をしましたが、これは動作しませんでした。

は、したがって、私はショートカットを取っ:変更

$ git stash 
Saved working directory and index state WIP on release-1: d2dbff3 removed the CVS $Id lines 
Checking out files: 100% (394/394), done. 
HEAD is now at d2dbff3 removed the CVS $Id lines 

を隠しそして今、すべてOKです。

私は隠れていることが少し力づくアプローチであるという印象を持っています。現在のブランチ(ファイルを一切与えずに全体)のcheckoutを実行して変更を破棄することは可能ですか?

答えて

3

短期的にはgit stash dropを使用して、余計なエントリを隠し場所から引き出すことができます。将来、git checkout HEAD -- dirを使用して、dirのヘッドコミットバージョンを取得することができます。

+0

+1ファイルの代わりに私が思っていなかった紛失したファイルは、checkoutコマンドに難読化されました:-(、ありがとう –

関連する問題