2014-03-06 5 views
5

Ich habe eine Frage in Bezug auf ein Flag, das mit dem Zusammenführungsbefehl in Git verwendet werden kann. Wenn Sie --no-ff mit merge (kein Schnellvorlauf-Flag) verwenden, wird anscheinend ein neues Commit-Objekt zum Zeitpunkt der Zusammenführung erstellt, auch wenn die Zusammenführung über einen Schnellvorlauf durchgeführt werden könnte.Git Merge No Fast-Forward-Flagge - schlechte Praxis?

Ich habe keine Informationen über diese Flagge gefunden und niemand scheint es irgendwo zu diskutieren. Ist es eine schlechte Übung, ein solches Commit-Objekt zu erstellen (und damit zu vermeiden, Informationen über die historische Existenz des Features zu verlieren)? Oder ist es veraltet und wurde durch etwas ersetzt?

Danke

+0

Neuere Git verbindet automatisch Non-Fast-Forward, wenn Sie einen Pull ausgeben. – knittl

+0

"und vermeiden Sie so den Verlust von Informationen" - Unabhängig davon, ob ein Merge-Commit erstellt wird, werden die ursprünglichen Commits Teil des Verlaufs des aktuellen Zweiges. Der einzige Fall, in dem die Information "verloren" wäre, wäre eine Schnellvorlauf-Zusammenführung: Die Einzelheiten, wann die Festlegungen zusammengeführt wurden, wurden nicht aufgezeichnet. – hvd

Antwort

7

Nein - das ist keine schlechte Praxis. Es ist eine Wahl, die Sie haben. Eine Situation, in der die Erstellung eines Merge-Commits erzwungen wird, ist die Code-Überprüfung. Wenn Entwickler Feature-Zweige immer zur Überprüfung senden und der Prüfer die Zusammenführung durchführt, wenn das Feature akzeptiert wird, enthält das Zusammenführungs-Commit alle Informationen darüber, wer die Überprüfung durchgeführt hat, zusammen mit zusätzlichen Kommentaren, die nützlich sein können. So funktioniert der Pull-Request-Workflow für github/gitlab. Wenn die Projekteigentümer eine Pull-Anforderung akzeptieren, wird immer ein Zusammenführungs-Commit erstellt, auch wenn es in der Lage ist, schnell vorwärts zu verschmelzen.

Verwandte Themen