7
votes

Comment supprimer le dossier .svn de GitHub Repo

J'ai tiré un référentiel à l'aide de Tortoisisesvn. Dans ce sont .svn dossiers de la racine et de tous les sous-dossiers. J'ai créé un référentiel GitHub et poussé un référentiel total.

Le problème est que, dans ma copie locale, j'ai supprimé les dossiers .svn à partir de Repo, puis commit les modifications. Il ne supprime pas le dossier des versions précédentes du référentiel ...

Je sais comment supprimer des données sensibles de GitHub Repo d'ici:

http://help.github.com/remove-senitive-Data/

Mais si j'utilise cela, je dois suivre cette procédure plus de 10 fois (et c'est une telle perte de temps pour le faire) ... Je me demandais donc que tout le monde peut me dire comment supprimer tout . svn dossiers de tout le repo en une seule fois?


0 commentaires

3 Réponses :


7
votes

J'avais besoin de le faire récemment et je viens de courir la commande suivante de mon répertoire racine de mon repo: xxx

cette recherche récursivement pour toutes les occurrences du dossier .svn et le supprime et son contenu récursivement. Le paramètre - Ignorer-immatch empêche le git d'étouffement s'il ne trouve pas le fichier spécifié dans le référentiel.

La prochaine chose à faire, bien sûr, est d'ajouter. SVN à votre .gitnore pour que vous ne puissiez plus jamais suivre ces fichiers.


0 commentaires

5
votes

Essayez ceci:

find . -type d -name .svn | xargs git rm -rf --ignore-unmatch


0 commentaires

0
votes

J'ai récemment dû faire cela sur ma machine Windows. Voici la commande comparable PowerShell. Il y a probablement une meilleure façon, mais je suis assez maladroit avec PS:

gci -Recurse -filter ".svn" | ?{ $_.PSIsContainer } | Select-Object FullName | %{ git rm -rf --ignore-unmatch $_.FullName }


0 commentaires