状況:ファイルが既にインデックスにある Git リポジトリがあります。いくつかのファイルに変更を加え、Git を開き、これらのファイルを「git add」でステージング領域に追加します。
質問:これらのファイルの 1 つをステージング領域から削除し、インデックスからは削除せず、ファイル自体への変更を元に戻すにはどうすればよいですか?
状況:ファイルが既にインデックスにある Git リポジトリがあります。いくつかのファイルに変更を加え、Git を開き、これらのファイルを「git add」でステージング領域に追加します。
質問:これらのファイルの 1 つをステージング領域から削除し、インデックスからは削除せず、ファイル自体への変更を元に戻すにはどうすればよいですか?
私が質問を正しく理解していれば、そのファイルに対して行われた操作を単に「元に戻す」git add
ことができます。
ステージング領域から1 つのファイルを削除する必要がある場合は、
git reset HEAD -- <file>
ステージング領域からディレクトリ (フォルダー) 全体を削除する必要がある場合は、
git reset HEAD -- <directoryName>
変更は保持されます。実行するgit status
と、ファイルは再び変更済みとして表示されますが、まだステージングされていません。
詳細については、git reset
man ページを参照してください。
git rm --cached FILE
、
git rm -r --cached CVS */CVS
したがって、Tim Henigan の回答を少し調整すると、ファイル名の前に -- を使用する必要があります。次のようになります。
git reset HEAD -- <file>
git reset filename.txt
filename.txt に変更があり、誤ってそれをステージングに追加したため、そのファイルをステージングから削除したいが、変更を失いたくない場合。
を使用していて、特定のパターンに従ってファイルを削除する場合はgit rm --cached
、ファイル グロブ パターンも使用できます。
ここを参照してください。
ファイルのディレクトリにいる必要があり、ターミナルに次のように入力します
git checkout -- <file>
すべてを一度にアンステージするには、次のコマンドを実行します
git reset HEAD -- .
git checkout -- <file>
ステージングエリアからファイルを削除するのに完全に機能します