2011-01-09 14 views
113

"git add dir"コマンドを使ってファイルを誤って追加しました。私はまだ "git commit"を実行していません。このディレクトリとそれに含まれるすべてをコミットから削除する方法はありますか?「git add <dir>」を元に戻しますか?

git reset dirを試しましたが、動作しませんでした。明らかにそれを元に戻す方法はgit reset fileです。しかし、私は非常に多くのファイルを持っているので、時間はほとんどありません。

+3

'git reset 'は 'HEAD'(現在のコミット)と一致するようにそのパスのインデックスを更新します。作業ツリーには触れません。 – Cascabel

答えて

182

インデックスからその中のディレクトリとすべてのものを削除するには、

git rm --cached -r dir

--cachedスイッチがgit rm OPEを作ります索引でのみ実行し、作業コピーには触れないでください。 -rスイッチを使用すると、再帰的になります。

+0

このコマンドは私のために働いた。ありがとうございました。 – neoneye

+9

「ステージングされたディレクトリ全体をインデックスから削除するには」gitコマンドの方がやや良い説明になります。私のようなgit初心者の方は、ファイルシステム上のディレクトリを削除することも可能です。ちょうど味の問題の。 –

+0

だから、私は '--cached'スイッチを太字にしていたのです。それにもかかわらず、インデックスにのみ適用されるという答えを編集しました。 –

14

あなたがgit rm --cached -r <dir>を使用したいと思うでしょう。このコマンドは、ステージングされたディレクトリの内容をインデックスから削除します。

ディレクトリが既に追跡された場合は、手動で新しいと古いファイルを検索し、それらをunstageする必要が...

おそらく既存リセットするためにその後git reset <dir>を実行します(すでに追跡された)ファイルのディレクトリ内

+0

これは私のために働いた –

関連する問題