Comment puis-je supprimer complètement un fichier à partir d'un dépôt git?
J'ai remarqué récemment que les fichiers de projet à mes éditeurs de texte utiliser (avec quelques autres cochonneries) ont été ajoutés le dépôt git du projet. Depuis qu'ils ne sont pas réellement partie du projet, j'aimerais les supprimer, mais git rm
ne pas supprimer les anciennes versions du référentiel, et je ne pourrais pas trouver quelque chose qui a l'air prometteur.
- partielle en double, certainement couvert par les questions précédentes: stackoverflow.com/questions/307828/... stackoverflow.com/questions/1216733/...
Vous devez vous connecter pour publier un commentaire.
L'outil que vous voulez est
git filter-branch
. Son utilisation est décrite ici, mais en gros:va supprimer "my_file" de chaque commettre.
Avis que cette réécrit à chaque commit, donc si vous poussez-le dans un dépôt distant, vous devez (a) forcer la mise à jour, et (b) toute autre personne qui a tiré à partir de maintenant, vous avez des commits (puisque vous réécriture de l'histoire), comme décrit sur le
git rebase
de la page de manuel.--prune-empty
de sorte que toute vide s'engage généré par conséquent, ils seront aussi retirés.git push --force
? @mipadiC'est ce que
git filter-branch
est pour, mais méfiez-vous que vos pensions de l'histoire va changer, et la validation des hachages sera différent après l'histoire de réécriture.Si vous aussi vous souhaitez libérer de l'espace, je recommande que vous utilisez
git forget-blob
, parce quegit filter-branch
seul ne fera pas de git oubliez votre fichier, qu'il peut encore être référencé par les télécommandes, les reflog, les tags et autres.git forget-blob main.c.swp
Vous pouvez obtenir plus d'informations ici