68 votes

Comment faire pour "annuler le versionnement" un fichier dans svn et/ou git

Ça m'arrive tout le temps. J'ai accidentellement version d'un fichier, je ne veux pas être versionné (c'est à dire un développeur/machine spécifique config-files).

Si j'ai commis ce fichier, je vais gâcher les chemins d'accès sur tous les autres ordinateurs de développement - qu'ils seront malheureux.

Si je dois supprimer le fichier de contrôle de version, il sera supprimé dans les autres développeurs de machines - ils seront malheureux.

Si je choisis de ne jamais s'engager dans le fichier, j'ai toujours un "sale" checkout - je suis malheureux.

Est une méthode propre à "annuler le versionnement" un fichier à partir de révision-contrôle, qui entraînera pas un être malheureux?

edit: en essayant de clarifier un peu: j'ai déjà commis le fichier dans le référentiel, et je veux seulement supprimer de la gestion des versions, j'ai expressément ne veux pas qu'il soit physiquement supprimé de tout le monde de faire un checkout. J'ai d'abord voulu être ignoré.

Réponse: Si je pouvais accepter une seconde réponse, il serait présent. Il répond à ma question concernant git - accepté la réponse est sur le svn.

69voto

wxs Points 1546

Dans Git, afin de le supprimer à partir de l'arbre, mais PAS dans le répertoire de travail, qui, je pense, est ce que vous voulez, vous pouvez utiliser l'option --cached drapeau, c'est:

git rm --cached <filename>

8voto

Glenn Slaven Points 15742

Si vous avez accidentellement " ajouter un fichier dans le svn et vous n'avez pas commis, vous pouvez revenir ce fichier et de supprimer l'ajouter.

6voto

Kai Points 2436

Sans l'avoir essayé...

Dans git, si vos modifications n'ont pas été propagées à un autre référentiel, vous devriez être en mesure d' git rm le fichier concerné(s), git rebase --interactive pour réorganiser la suppression s'engager à être juste après la validation dans lequel vous avez accidentellement ajouté la délinquance des fichiers, puis de squash ces deux s'engage.

Bien sûr, cela ne va pas aider si quelqu'un d'autre a tiré vos modifications.

4voto

Trumpi Points 4190

Il semble que vous avez déjà ajouté et engage le fichier de subversion (je suppose que vous utilisez Subversion). Si c'est le cas, alors il y a seulement deux façons de supprimer ce fichier:

  1. Marquer le fichier comme supprimé et valider.
  2. Effectuer une svnadmin dump, filtrer la révision endroit où vous avez accidentellement commis le fichier et effectuer une svnadmin load.

Faites-moi confiance, vous ne voulez pas vraiment à faire le numéro 2. Il annule toutes les copies de travail du référentiel. Le mieux est de faire le numéro 1, marquer le fichier comme ignoré et s'excuser.

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