.png)
Ich habe mehrere lokale Commits zu meiner Codebasis gemacht und versucht, sie in mein Repo zu pushen, aber es gab ziemlich viele große Dateien. Ich habe einfach aufgegeben und weitergearbeitet und lokale Commits gemacht. Ich habe die großen Dateien jetzt gelöscht und erneut committet, aber es versucht immer noch, die ursprünglichen großen Dateien zu pushen. Ich habe versucht, nach dem ursprünglichen Committing ein Gitignore hinzuzufügen, um alle Dateien über 50 MB zu ignorieren, aber ohne Erfolg.
Irgendwelche Ideen?
Antwort1
LesenHierüber Filterzweig.
Jemand übergibt versehentlich eine riesige Binärdatei mit einem gedankenlosen git add . und Sie möchten diese überall entfernen. Vielleicht haben Sie versehentlich eine Datei übergeben, die ein Passwort enthielt, und Sie möchten Ihr Projekt Open Source machen. filter-branch ist das Tool, mit dem Sie wahrscheinlich Ihren gesamten Verlauf löschen möchten. Um eine Datei namens passwords.txt aus Ihrem gesamten Verlauf zu entfernen, können Sie die Option --tree-filter für filter-branch verwenden:
$ git filter-branch --tree-filter 'rm -f passwords.txt' HEAD
Rewrite 6b9b3cf04e7c5686a9cb838c3f36a8cb6a0fc2bd (21/21)
Ref 'refs/heads/master' was rewritten
Sie können auch ein interaktives Rebase auf Ihrem Zweig an der Stelle durchführen, an der Sie diese Dateien übermittelt haben, und sie aus diesem Commit entfernen. Der obige Link erklärt dies auch, aber im Wesentlichen:
git rebase -i HEAD~X
ermöglicht Ihnen, die letzten X-Commits zu bearbeiten.