Git Merge mit --no-ff und --squash
Ich verwende die Git-Flow-Methode zum Verwalten von Filialen in meinem Repo, wie in den folgenden Abschnitten beschrieben:http://nvie.com/posts/a-successful-git-branching-model/
Die Reihenfolge der Befehle, die ich verwenden sollte, wäre also wie folgt:
git checkout mybranch
git pull --rebase origin develop
git checkout develop
git merge --no-ff mybranch
Es gibt jedoch eine Sache, die ich in einigen Fällen anders machen möchte:
Ich möchte alle meine Commits in meinem Feature-Zweig beibehalten (mybranch
), aber lassen Sie sie beim Zusammenführen zu einem einzigen Diff zusammenfassen (oder zerquetschen)develop
.
Das ist also, was ich denke, die Reihenfolge der Befehle sollte sein:
git checkout mybranch
git pull --rebase origin develop
git checkout develop
git merge --no-ff --squash mybranch
Würde ich etwas falsch machen, wenn ich kombinieren würde?--no-ff
mit--squash
?
Ich zögere, dies auszuprobieren, da "Quetschen" und "Bewahren der Geschichte" orthogonale Anforderungen sind - sieheAlle meine Commits (einschließlich Zusammenführungen) in einem Commit zusammenfassen, ohne den Verlauf zu ändern
Mein Grundgedanke ist, dass ich die Geschichte auf einem Zweig bewahren möchte (mybranch
) und suqash auf einem anderen Ast (develop
) -> Da diese Aktionen in separaten Zweigen ausgeführt werden, ist dies in Ordnung.