Acho que você provavelmente se confundiu com o conceito de índice , como comentou @CB Bailey:
A área de preparação é o índice.
Você pode simplesmente considerar o diretório e o índice de preparação como a mesma coisa.
Então, assim como a resposta de Tim Henigan , eu acho:
você simplesmente deseja "desfazer" o git add
que foi feito para esse arquivo.
Aqui está a minha resposta:
Geralmente, existem duas maneiras de desfazer uma operação de estágio , como outras respostas já mencionadas:
git reset HEAD <file>
e
git rm --cached <file>
Mas qual é a diferença?
Suponha que o arquivo tenha sido preparado e exista também no diretório ativo, use git rm --cached <file>
se você deseja removê-lo do diretório intermediário e mantenha o arquivo no diretório ativo . Mas observe que esta operação não apenas removerá o arquivo do diretório temporário, mas também marcará o arquivo como deleted
no diretório temporário , se você usar
git status
Após esta operação, você verá o seguinte:
deleted: <file>
É um registro de remoção do arquivo do diretório intermediário . Se você não deseja manter esse registro e simplesmente deseja desfazer uma operação de estágio anterior de um arquivo, use-o git reset HEAD <file>
.
-------- FIM DA RESPOSTA --------
PS: Eu notei algumas respostas mencionadas:
git checkout -- <file>
Este comando é para a situação em que o arquivo foi preparado , mas o arquivo foi modificado no diretório de trabalho após ser preparado, use esta operação para restaurar o arquivo no diretório de trabalho a partir do diretório de preparação . Em outras palavras, após esta operação, as alterações acontecem no diretório ativo, NÃO no diretório intermediário .