Warum
Git-Geschichte funktioniert am besten, wenn sie tatsächlich die Geschichte des Entwicklungsprozesses erzählt. Wenn Sie die Historie durchforsten müssen (z. B. zum Suchen, wann ein Fehler eingeführt wurde, wenn er behoben wurde usw.), hilft es nicht, Commits mit dem Titel "Füge die heutigen Änderungen hinzu" zu sehen . Sie sagen Ihnen, wie der Code geändert wurde, nicht aber warum.
Das Überschreiben der Festschreibungshistorie wird häufig durchgeführt (um Zusagen zusammenzuführen, umzuwechseln usw.) - wenn Sie jedoch nur 2 von 3 Zusagen willkürlich löschen, ist dies wahrscheinlich genauso nutzlos wie zuvor. Schreiben Sie stattdessen den Verlauf um, um Dinge wie "Whoops, einen Tippfehler korrigieren" zu bereinigen oder um mehr Details zum Festschreiben von Nachrichten hinzuzufügen.
Natürlich ist das Obige eine Ansichtssache, aber im Allgemeinen ist es praktischer, wenn der Computer sich an Dinge erinnert, damit Sie dies nicht tun müssen.
425 Commits sind für ein mehrmonatiges Projekt normal. Verglichen mit vielen echten Git-Repositories (die Commits in Tausendern messen) ist es relativ klein. Wenn Ihre Besorgnis die Speicherplatzbelegung betrifft und Git die Periodic git gc
noch nicht ausgeführt hat, versuchen Sie es manuell auszuführen, und prüfen Sie, ob dies hilfreich ist.
Backups über das Netzwerk sind git push
weitaus effizienter als das manuelle Hochladen ganzer Repositorys, da sie genau wissen, was hochgeladen werden muss und was bereits vorhanden ist.
Zurück zum Punkt
Git hat viele Werkzeuge zum Umschreiben des Verlaufs. Die gebräuchlichsten sind die git rebase --interactive
, die genau die gewünschten Bearbeitungen ausführen können.
; on a feature branch, to rewrite everything that's not yet in master git rebase -i master ; on master, to go through the *entire history* git rebase -i --root
Wenn Sie es im interaktiven Modus ausführen, wird eine "ToDo-Liste" in einem Texteditor geöffnet, mit einer Zeile pro Commit und einer "Aktion" davor.
Durch Verschieben der Zeilen werden die Commits neu angeordnet. (Durch das Ändern des Texts werden jedoch keine Commit-Nachrichten aktualisiert. Es handelt sich lediglich um eine Vorschau. Verwenden Sie diese Option
reword
, um die echte Nachricht zu bearbeiten.)Wenn Sie die Aktion von
pick
bissquash
ändern, wird das Commit mit dem oben genannten kombiniert. Dies führt zu einem einzigen Commit, das beide Nachrichten enthält.Die
fixup
Aktion ist ähnlich, behält aber nur die 1. Nachricht bei.
Das sind die Grundlagen, denn viele Tutorials wurden bereits viel detaillierter geschrieben. Zum Beispiel kann das Git Buch hat ein Kapitel über die Geschichte Umschreiben .