Comment supprimer un fichier de l'index dans git?

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

282
git
demandé sur hcs42 2010-02-08 19:58:21

4 réponses

Vous voulez:

git rm --cached [file]

Si vous omettez l'option --cached, elle la supprimera également de l'arborescence de travail. git rm est légèrement plus sûr que git reset, car vous serez averti si le contenu mis en scène ne correspond pas à la pointe de la branche ou au fichier sur le disque. (Si ce n'est pas le cas, vous devez ajouter --force.)

384
répondu John Feminella 2015-07-13 09:04:44

Cela devrait détacher un pour vous (sans supprimer ou modifier le fichier):

git reset HEAD <file>
107
répondu David Underhill 2014-09-16 10:54:07
git reset HEAD <file> 

Pour supprimer un fichier particulier de l'index.

Et

git reset HEAD

Pour supprimer tous les fichiers indexés.

1
répondu Abdul Gafoor 2018-07-31 08:29:05

En fonction de votre flux de travail, cela peut être le genre de chose dont vous avez rarement besoin pour qu'il ne soit pas utile d'essayer de trouver une solution en ligne de commande (à moins que vous ne travailliez sans interface graphique pour une raison quelconque).

Utilisez simplement l'un des outils basés sur L'interface graphique qui prennent en charge la gestion des index, par exemple:

  • git gui gitk
  • {[2] }

Ceux-ci vous permettent de déplacer des fichiers dans et hors de l'index par pointer-cliquer. Ils ont même un support pour sélectionner et déplacer des parties d'un fichier (modifications individuelles) vers et depuis l'index.


Que diriez-vous d'une perspective différente: si vous gâchez tout en utilisant l'une des commandes suggérées, plutôt cryptiques:

  • git rm --cached [file]
  • git reset HEAD <file>

...vous avez une chance réelle de perdre des données - ou du moins de le rendre difficile à trouver. À moins que vous vraiment besoin de le faire avec une fréquence très élevée, en utilisant un outil GUI est susceptible d'être plus sûr .


Travailler sans l'index

Sur la base des commentaires et des votes, je me suis rendu compte que beaucoup de gens utilisent l'index tout le temps. Je ne sais pas. voici comment:

  • Commettre toute ma copie de travail (le cas typique): git commit -a
  • Commettre quelques fichiers: git commit (list of files)
  • Commettre quelques mais tous les fichiers modifiés: git commit -a, puis modifier via git gui
  • revoir graphiquement toutes les modifications apportées à la copie de travail: git difftool --dir-diff --tool=meld
-3
répondu nobar 2016-08-15 20:17:28