回答:
ディレクトリとその中のすべてをインデックスから削除するには、
git rm --cached -r dir
--cachedスイッチになりはgit rm過ぎず、作業コピーに触れ指数で動作します。-rスイッチは、それが再帰的になります。
--cachedスイッチを太字にしました。それにもかかわらず、私はそれがインデックスにのみ適用されることを修飾するために答えを編集しました。
git reset HEAD folderすべてを修正しました...しかし、これを行う前に、を実行しgit status folder、そのフォルダー上のすべてのファイルを「削除」したことを確認してください
使いたくなるでしょうgit rm --cached -r <dir>。このコマンドは、ステージングされたディレクトリの内容をインデックスから削除します。
ディレクトリがすでに追跡されている場合は、新しいファイルと古いファイルを手動で見つけてステージングを解除する必要があります…
おそらくgit reset <dir>その後に実行され、ディレクトリ内の既存の(そしてすでに追跡されている)ファイルをリセットします。
アップデート2019:
単に実行するとgit reset directory、新しく追加されたすべてのファイルのステージが解除されます。
git reset <dir>だけでは十分では?
git reset <dir>うまくいくようです。答えは2011年なので、それが8年前にすでに機能していたかどうかはわかりません。答えを更新します。ヒントをありがとう!
git reset <path>一致するようにHEAD(現在のコミット)、そのパスのインデックスを更新します。作業ツリーには触れません。