Betrachten Sie die folgende Situation:
- Sie haben einen Klon eines Git-Repository
- Sie haben einige lokale Commits (Commits, die noch nirgendwo gepusht wurden)
- Das Remote-Repository verfügt über neue Commits, die Sie noch nicht abgeglichen haben
So etwas in der Art:
Wenn Sie git pull
mit den Standardeinstellungen ausführen , erhalten Sie ungefähr Folgendes:
Dies liegt daran, dass git eine Zusammenführung durchgeführt hat.
Es gibt jedoch eine Alternative. Sie können pull anweisen, stattdessen eine Rebase durchzuführen:
git pull --rebase
und du bekommst folgendes:
Meiner Meinung nach hat die neu basierende Version zahlreiche Vorteile, bei denen es hauptsächlich darum geht, Ihren Code und den Verlauf sauber zu halten. Daher bin ich ein wenig überrascht, dass git die Zusammenführung standardmäßig vornimmt. Ja, die Hashes Ihrer lokalen Commits werden geändert, aber dies scheint ein geringer Preis für die einfachere Historie zu sein, die Sie dafür erhalten.
Ich behaupte aber keineswegs, dass dies irgendwie ein schlechter oder falscher Standard ist. Ich habe nur Probleme beim Überlegen von Gründen, warum die Zusammenführung für die Standardeinstellung bevorzugt werden könnte. Haben wir einen Einblick, warum es ausgewählt wurde? Gibt es Vorteile, die es als Standard besser geeignet machen?
Die Hauptmotivation für diese Frage ist, dass mein Unternehmen versucht, einige grundlegende Standards (hoffentlich eher Richtlinien) für die Organisation und Verwaltung unserer Repositorys festzulegen, um Entwicklern die Annäherung an ein Repository zu erleichtern, mit dem sie zuvor noch nicht gearbeitet haben. Ich bin daran interessiert, einen Fall zu machen, in dem wir normalerweise in einer solchen Situation einen Rebase durchführen sollten (und wahrscheinlich, um Entwicklern zu empfehlen, ihre globale Konfiguration standardmäßig auf Rebase zu setzen), aber wenn ich dagegen wäre, würde ich mit Sicherheit fragen, warum Rebase nicht funktioniert. t der Standard, wenn es so toll ist. Also frage ich mich, ob ich etwas vermisse.
Es wurde vermutet, dass diese Frage ein Duplikat von Warum bevorzugen so viele Websites "Git Rebase" gegenüber "Git Merge"? ; Diese Frage ist jedoch etwas umgekehrt . In diesem Artikel werden die Vorteile von Zusammenführung über Zusammenführung erörtert, während in dieser Frage die Vorteile von Zusammenführung über Zusammenführung erörtert werden. Die Antworten dort spiegeln dies wider und konzentrieren sich auf Probleme mit dem Zusammenführen und den Vorteilen von Rebase.