Ich kann mir nie wirklich eine Zeit vorstellen, in der ich git merge
eher ein Commit als ein Commit zeigen würde git rebase
und nicht möchte. Gibt es eine Möglichkeit, git so zu konfigurieren, dass der Schnellvorlauf standardmäßig deaktiviert ist? Die Tatsache, dass es eine --ff
Option gibt, scheint zu implizieren, dass es einen Weg gibt, aber ich kann ihn in der Dokumentation nicht finden.
263
merge
ganze Zeit für Filialen, wenn keine Festschreibungen von ihrer Fernbedienung vorgenommen wurden, um sie schnell vorzuspulen. Dies scheint der einfachste und sicherste Weg zu sein. Ich bin neugierig, Sie haben offensichtlich einen Anwendungsfall. Warum sollten Sie jemals ein Merge-Commit erstellen wollen, bei dem auf einer Seite des Zweigs keine Commits vorhanden sind?Antworten:
Ja, das gibt es
--no-ff
. Sie können Zusammenführungsoptionen pro Zweig konfigurieren, zFügt Ihrer
$(REPO)/.git/config
Datei Folgendes hinzu :Fußnote: Als ich von meiner Erfahrung sprach, fand ich schließlich, dass das Umschalten auf Schnellvorlauf vor allem für Git-Neulinge hilfreich war. Sobald jedoch das Gefühl für Workflows und Konzepte einsetzt, möchten Sie auf jeden Fall vermeiden, Ihr Protokolldiagramm mit Tonnen sinnloser Zusammenführung zu verwischen Remote ..blarf 'Typ Commits.
Fußnote 2, ein Jahrzehnt später: Die anderen Antworten unten bieten modernere Konfigurationsoptionen, aber tatsächlich möchten Sie heutzutage wahrscheinlich die Standardeinstellungen beibehalten (dh, wann immer möglich, schnell vorspulen), da leere Merge-Commits wirklich nur möglich sind machen es viel schwieriger, über die Geschichte nachzudenken.
quelle
git pull
istgit fetch
+git merge
.git merge --no-ff (branchname)
? Und ich möchtegit pull
so funktionieren, wie es immer war?Es scheint, dass im Thread noch eine Frage offen ist: Wie geht das global (dh für alle Zweige)? Für die Aufzeichnungen können wir Folgendes verwenden:
... damit es für alle Zweige im aktuellen Repository gilt. Führen Sie Folgendes aus, damit es auf alle Zweige in allen Repositorys angewendet wird, in denen es nicht ohne die
--global
Option (lokale Einstellungen überschreiben global) ausgeführt wurde:Aus der Dokumentation :
quelle
merge.ff
wurde in Git 1.7.6 eingeführt. In älteren Versionen ist es nicht wirksam.puff = "pull --ff --ff-only"
Beim Lesen des Antwortfadens habe ich die folgenden beiden Optionen verwendet
Nur lose verwandt Ich habe auch festgestellt, dass diese Einstellung Probleme beim Ziehen vermeidet
quelle