412 votes

Comment supprimer un fichier de l'index dans git ?

Comment supprimer un fichier de l'index ( = zone de transit = cache) sans le supprimer du système de fichiers ?

6 votes

Voulez-vous dire "rétablir ce qui était là avant" ou "supprimer, car je ne veux plus de ce fichier" ?

1 votes

Dans mon cas, c'est la même chose car le fichier n'existait pas avant...

0 votes

@hcs42 la réponse acceptée est fausse et entraînera la suppression de fichiers pour de nombreuses personnes. La deuxième réponse la plus populaire ( git reset <file> ) est correcte. Vous serait-il possible de déplacer la coche verte vers la bonne réponse ?

2voto

Selon mon humble opinion et mon expérience de travail avec git, la zone de transit n'est pas la même chose que l'index. Je peux me tromper bien sûr, mais comme je l'ai dit, mon expérience dans l'utilisation de git et ma logique me disent que l'index est une structure qui suit vos changements dans votre zone de travail (dépôt local) qui ne sont pas exclus par des paramètres d'ignorance et la zone de transit est de garder les fichiers qui sont déjà confirmés à être commis, c'est-à-dire les fichiers dans l'index sur lesquels la commande add a été exécutée. Vous ne remarquez pas et ne réalisez pas cette "légère" différence, parce que vous utilisez la commande git commit -a -m "comment" l'ajout de fichiers indexés et mis en cache dans la zone de stage et la validation en une seule commande ou l'utilisation trop fréquente d'IDE comme IDEA pour cela. Et le cache est ce qui conserve les changements dans les fichiers indexés. Si vous voulez supprimer un fichier de l'index qui n'a pas été ajouté à la zone de transit auparavant, les options proposées plus haut vous conviennent, mais... Si vous l'avez déjà fait, vous devrez utiliser

Git restore --staged <file>

Et, s'il vous plaît, ne me demandez pas où j'étais il y a 10 ans... Vous m'avez manqué, cette réponse est pour les générations suivantes)

0 votes

"L'index est une structure qui suit vos modifications dans votre zone de travail" Ce n'est pas le cas, pour deux raisons : (1) Git ne suit pas les fichiers dans votre zone de travail jusqu'à ce que vous fassiez "git add" sur eux. (2) La documentation de Git est claire : l'index contient les modifications sur lesquelles "git add" a été exécuté : git-scm.com/docs/git-add : "git-add - Ajouter le contenu des fichiers à l'index". Voir aussi : reddit.com/r/git/comments/2szztw/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X