Penso che probabilmente ti sei confuso con il concetto di indice , come ha commentato @CB Bailey:
L'area di gestione temporanea è l'indice.
Puoi semplicemente considerare la directory di gestione temporanea e l' indice come la stessa cosa.
Quindi, proprio come la risposta di @Tim Henigan , immagino:
vuoi semplicemente "annullare" git add
ciò che è stato fatto per quel file.
Ecco la mia risposta:
Comunemente, ci sono due modi per annullare un'operazione sul palco , come altre risposte già menzionate:
git reset HEAD <file>
e
git rm --cached <file>
Ma qual è la differenza?
Si supponga che il file sia stato messo in scena ed esista anche nella directory di lavoro , utilizzare git rm --cached <file>
se si desidera rimuoverlo dalla directory di gestione temporanea e mantenere il file nella directory di lavoro . Si noti che questa operazione non rimuoverà solo il file dalla directory di gestione temporanea, ma contrassegnerà il file come deleted
nella directory di gestione temporanea , se si utilizza
git status
dopo questa operazione, vedrai questo:
deleted: <file>
È un record di rimozione del file dalla directory di gestione temporanea . Se non si desidera conservare quel record e si desidera semplicemente annullare un'operazione nella fase precedente di un file, utilizzare git reset HEAD <file>
invece.
-------- FINE DELLA RISPOSTA --------
PS: ho notato alcune risposte menzionate:
git checkout -- <file>
Questo comando è per la situazione in cui il file è stato messo in scena , ma il file è stato modificato nella directory di lavoro dopo che è stato messo in scena, utilizzare questa operazione per ripristinare il file nella directory di lavoro dalla directory di gestione temporanea . In altre parole, dopo questa operazione, si verificano cambiamenti nella directory di lavoro , NON nella directory di gestione temporanea .