1365

状況:ファイルが既にインデックスにある Git リポジトリがあります。いくつかのファイルに変更を加え、Git を開き、これらのファイルを「git add」でステージング領域に追加します。

質問:これらのファイルの 1 つをステージング領域から削除し、インデックスからは削除せず、ファイル自体への変更を元に戻すにはどうすればよいですか?

4

18 に答える 18

2066

私が質問を正しく理解していれば、そのファイルに対して行われた操作を単に「元に戻す」git addことができます。

ステージング領域から1 つのファイルを削除する必要がある場合は、

git reset HEAD -- <file>

ステージング領域からディレクトリ (フォルダー) 全体を削除する必要がある場合は、

git reset HEAD -- <directoryName>

変更は保持されます。実行するgit statusと、ファイルは再び変更済みとして表示されますが、まだステージングされていません。

詳細については、git resetman ページを参照してください。

于 2009-10-01T19:29:08.247 に答える
163
git rm --cached FILE

git rm -r --cached CVS */CVS
于 2010-05-07T12:25:09.293 に答える
55

したがって、Tim Henigan の回答を少し調整すると、ファイル名の前に -- を使用する必要があります。次のようになります。

git reset HEAD -- <file>
于 2014-02-21T16:55:24.350 に答える
23
git reset filename.txt

filename.txt に変更があり、誤ってそれをステージングに追加したため、そのファイルをステージングから削除したいが、変更を失いたくない場合。

于 2018-03-20T10:53:55.333 に答える
4

を使用していて、特定のパターンに従ってファイルを削除する場合はgit rm --cached、ファイル グロブ パターンも使用できます。

ここを参照してください。

于 2014-01-04T09:21:44.150 に答える
1

ファイルのディレクトリにいる必要があり、ターミナルに次のように入力します

git checkout -- <file>
于 2020-12-06T20:42:39.837 に答える
-4

すべてを一度にアンステージするには、次のコマンドを実行します

git reset HEAD -- .
于 2016-09-06T19:03:38.363 に答える
-9

git checkout -- <file>

ステージングエリアからファイルを削除するのに完全に機能します

于 2015-05-18T17:25:05.850 に答える