So führen Sie eine Pull-Anforderung zusammen, ohne einen Merge-Commit im Git-Verlauf zu erhalten

Lesezeit: 2 Minuten

Benutzer-Avatar
Achraf JEDAY

Auf Github erhalte ich jedes Mal, wenn ich eine Pull-Anfrage in meinen Basis-Zweig zusammenführe, einen zusätzlichen Zusammenführungs-Commit:

Pull-Request #77 zusammenführen …

Ich ziehe es vor, einen Git-Verlauf ohne diese Merge-Commits zu erhalten.

Wie kann ich das erreichen?

  • git merge --squash

    – kruczek

    12. Mai 2017 um 12:34 Uhr

  • Dadurch werden alle Commits zu einem kombiniert.

    – Achraf JEDAY

    12. Mai 2017 um 12:40 Uhr

  • Jop richtig, und dann wendet es den Squash-Commit als einzelnen Commit auf Ihren HEAD an, ohne eine übergeordnete Beziehung zum Zweig „Pull Request“ zu erstellen. Sehen hier

    – ckruczek

    12. Mai 2017 um 12:43 Uhr


  • Führen Sie eine Rebase anstelle einer Zusammenführung durch, wobei Sie optional auch die Commits quetschen, aber die meiste Zeit nicht wirklich notwendig sind. Dadurch werden die gleichen Commits über Ihrem aktuellen Zweigtipp verschoben und erneut angewendet und der Merge-Commit wird vermieden. Allerdings haben Sie jetzt den Verlauf umgeschrieben, sodass derjenige, dem das Repository gehört, aus dem die Pull-Anforderung stammt, am besten sein Repository gemäß Ihrer Umschreibung aktualisiert, oder Sie erhalten später eine ähnliche Pull-Anforderung mit denselben Commits.

    – Lasse V. Karlsen

    12. Mai 2017 um 13:10 Uhr

  • @LasseV.Karlsen Ich benutze den PR-Zweig normalerweise nicht mehr, nachdem ich den PR zusammengeführt habe, also ist es kein Problem für mich.

    – Achraf JEDAY

    12. Mai 2017 um 14:30 Uhr

Um einen Git-Verlauf ohne Pull-Request-Merge-Commits zu erhalten, kann ich die Merge-Schaltfläche (Pull-Request-Seite) verwenden und eine Rebase und Merge durchführen:

Geben Sie hier die Bildbeschreibung ein

  • Das Problem ist, dass ‘Squash and merge’ und ‘Rebase and merge’ beide das gpg-Zeichen verlieren

    – XQ Kuang

    25. Dezember 2019 um 8:09 Uhr

  • Gibt es eine Möglichkeit zu verhindern, dass GH währenddessen neue Commits (mit neuen Hashes) generiert, wenn der Quellzweig auf dem Zielzweig basiert?

    – Frxx

    20. Juni um 23:38 Uhr

Benutzer-Avatar
Markus Adelsberger

Hier sind Ihre Optionen:

  • Quetschen
  • Rebase
  • Verschmelzen

Ein Squash führt zu einem einzigen neuen Commit, das alle Änderungen an der Spitze des Hauptzweigs darstellt. Es ist ein Spezialfall von Rebase.

Ein Rebase führt zu einem oder mehreren neuen Commits (von denen sich einige oder alle in einem “kaputten”/nicht erstellbaren Zustand befinden können) am Kopf des Hauptzweigs.

Ein Merge erstellt einen Merge-Commit und hinterlässt den Verlauf so, wie er wirklich passiert ist.

Hier ist die Dokumentation der Optionen: https://github.com/blog/2243-rebase-and-merge-pull-requests

1142500cookie-checkSo führen Sie eine Pull-Anforderung zusammen, ohne einen Merge-Commit im Git-Verlauf zu erhalten

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy