Git: nécessité de récursive « git rm » le contenu de tous les dossiers bin et obj
Question
Quelqu'un par hasard juste engage tous leurs bin et obj dossiers à notre repo
(Il y a environ 40 ces dossiers). Je voudrais faire un git rm -r
sur tous ces dossiers. Y at-il une commande pour le faire?
La solution
Les sauvegardes ont été effectuées,
find . -type d -name bin -exec git rm -r {} \;
find . -type d -name obj -exec git rm -r {} \;
Mise à jour
Avec bash, vous pouvez définir le globstar shopt, et être heureux:
shopt -s globstar
git rm -r **/{obj,bin}/
Enfin, si vous devez les supprimer de l'histoire du dépôt, regardez git filter-branch
et lisez la section Supprimer des objets ' Pro Git livre
Autres conseils
Une fois que vous revenez (gardera les fichiers dans l'histoire) ou réinitialiser la validation,
git reset --hard
Une fois que ceux-ci sont ignorés fichiers,
git clean -xdf
Je l'utiliser pour nettoyer avant de reconstruire une solution. Semble vs utilise des DLLs même après la caisse d'une branche différente ou d'une fusion.
Vous ne devriez pas avoir besoin de recourir à la branche de filtre. rebasage fera Interactive. Rappelez-vous le drapeau --preserve-fusions.
Hope this helps.
Une autre option consiste à rétablir le fautif commis avec git revert
.