Wir verwenden Git und GitFlow als Versionierungswerkzeuge, und ich stehe vor einem Problem, von dem ich ziemlich sicher bin, dass einige Leute bereits darauf gestoßen sind.
In einem Feature-Branch hat ein Kollege einen Commit gemacht, bei dem viele nutzlose Dateien eingefügt wurden (alle Binär- und IDE-Metadatendateien). Dieses Commit wurde gepusht. Jetzt sendet dieser Kollege einen Pull-Request, in den ich nicht all diese nutzlosen Dateien integrieren möchte develop
.
Jetzt ist mein Git-Repository ziemlich groß und ein Git-Klon wird zu einem langen und langweiligen Prozess …
Die erste (und einfache) Lösung besteht darin, diese Dateien aus dem Feature-Branch zu entfernen und ohne diese Dateien zu committen (oder eine revert commit
). Aber wenn ich das tue, bleibt mein Git-Repository ziemlich groß, weil Objekte (Dateien) nicht aus der Historie entfernt werden (weil Git sie immer noch kennt!).
Was ich möchte, ist, diesen Commit zu “stornieren”.
Das folgende Bild zeigt mein Problem (das oberste Commit ist das älteste):
Wie kann ich diesen Commit entfernen und meinen Git-Klon wieder schnell machen?
PS: Danke an GitGraphJS für ihre nützlichen Tools zum Zeichnen von Git-Graphen!
Warum nicht einfach den Zweig entfernen, da er nicht zusammengeführt wird?
– lxyyz
8. Juni 2017 um 16:36 Uhr
Führen Sie einen interaktiven Rebase des Zweigs durch, reparieren Sie das betreffende Commit und senden Sie dann die Pull-Anfrage erneut.
– Lasse V. Karlsen
8. Juni 2017 um 16:47 Uhr
Kannst du den Commit rückgängig machen?
– baumelnder Zeiger
8. Juni 2017 um 16:47 Uhr