126 votes

Supprimer un fichier existant d'un Repo Git

Je veux que git arrête de suivre mon journal de développement local (log/development.log) dans nos dépôts. Est-ce possible et comment puis-je le faire ?

143voto

Tim Visher Points 6028

Juste pour donner la réponse complète en une seule fois :

  1. de klemens : Vous devez ajouter le fichier à votre .gitignore quelque part au-dessus du fichier indésirable dans le repo, c'est à dire

    $ cd $ cat >> .gitignore development.log C-d

  2. de m. narebski : Vous devez ensuite supprimer le fichier du dépôt en exécutant " git rm --cached <file> et ensuite commettre cet enlèvement"

Si vous espérez également faire en sorte que le repo semble n'avoir jamais suivi ce fichier, c'est beaucoup plus compliqué et fortement déconseillé car cela ne crée pas seulement de nouveaux commits pour chaque commit de votre historique, détruisant ainsi l'interopérabilité de manière désagréable entre les autres personnes qui ont cloné votre repo, mais cela laisse également chacun de ces commits non testés (en supposant que vous testez vos commits avant de les faire).

En gardant cette réserve à l'esprit, l'outil que vous recherchez si c'est votre objectif est le suivant filter-branch . Le premier exemple fait exactement ce que je décris.

53voto

kusma Points 3719

Pour arrêter de suivre le fichier, il suffit d'utiliser git rm --cached <filename> .

Mais comme l'ont souligné d'autres personnes ici, ajouter le fichier à .gitignore pourrait vous empêcher de le rajouter accidentellement plus tard.

1voto

klemens Points 611

Ajouter le fichier gitignore.

voir http://git-scm.com/docs/gitignore

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