Je pense que vous avez probablement été confondu avec le concept d' index , comme l'a commenté @CB Bailey:
La zone de transit est l'index.
Vous pouvez simplement considérer le répertoire et l' indexation intermédiaires comme la même chose.
Donc, tout comme la réponse de @Tim Henigan , je suppose:
vous voulez simplement "annuler" ce git add
qui a été fait pour ce fichier.
Voici ma réponse:
Généralement, il existe deux façons d'annuler une opération par étapes , comme d'autres réponses déjà mentionnées:
git reset HEAD <file>
et
git rm --cached <file>
Mais quelle est la différence?
Supposons que le fichier a été transféré et existe également dans le répertoire de travail , utilisez-le git rm --cached <file>
si vous souhaitez le supprimer du répertoire de stockage et conservez le fichier dans le répertoire de travail . Mais notez que cette opération supprimera non seulement le fichier du répertoire intermédiaire, mais marquera également le fichier comme deleted
dans le répertoire intermédiaire , si vous utilisez
git status
après cette opération, vous verrez ceci:
deleted: <file>
C'est un enregistrement de la suppression du fichier du répertoire intermédiaire . Si vous ne souhaitez pas conserver cet enregistrement et souhaitez simplement annuler une opération d'un fichier à l'étape précédente, utilisez git reset HEAD <file>
plutôt.
-------- FIN DE RÉPONSE --------
PS: J'ai remarqué certaines réponses mentionnées:
git checkout -- <file>
Cette commande est destinée au cas où le fichier a été transféré , mais le fichier a été modifié dans le répertoire de travail après avoir été transféré, utilisez cette opération pour restaurer le fichier dans le répertoire de travail à partir du répertoire de transfert . En d'autres termes, après cette opération, des changements se produisent dans votre répertoire de travail , PAS dans votre répertoire intermédiaire .