Lesen Sie hier über den Filterzweig.
Jemand schreibt aus Versehen eine riesige Binärdatei mit einem gedankenlosen Git-Add. Fest, und Sie möchten sie überall entfernen. Möglicherweise haben Sie versehentlich eine Datei festgelegt, die ein Kennwort enthielt, und Sie möchten, dass Ihr Projekt Open Source ist. Filterzweig ist das Werkzeug, mit dem Sie wahrscheinlich den gesamten Verlauf löschen möchten. Um eine Datei mit dem Namen passwords.txt aus Ihrem gesamten Verlauf zu entfernen, können Sie die Filteroption --tree-filter verwenden, um zu filtern:
$ git filter-branch --tree-filter 'rm -f passwords.txt' HEAD Rewrite 6b9b3cf04e7c5686a9cb838c3f36a8cb6a0fc2bd (21/21) Ref 'refs/heads/master' was rewritten
Sie können auch an der Stelle, an der Sie diese Dateien festgeschrieben haben, eine interaktive Neugestaltung in Ihrem Zweig vornehmen und sie aus dem Commit entfernen. Der Link oben erklärt dies auch, im Grunde jedoch:
git rebase -i HEAD~X
können Sie die letzten X-Commits bearbeiten.