2012-04-03 3 views
39

Die Schaltfläche "Diese Pull-Anforderung kann automatisch zusammengeführt werden [Merge Pull Request]" in GitHub ist groß - außer dass es Merge-Bubbles erstellt.Automatisches Zusammenführen von Pull-Requests auf Github ohne Merge-Bubble

Gibt es eine Möglichkeit, diese Schaltfläche/Funktionalität in GitHub zu verwenden, ohne Merge Bubbles zu erstellen?

+0

Ich bin mir nicht sicher, ich habe jemals den Begriff "Blase" zuvor gehört (in Bezug auf Git); Ich nehme an, es bedeutet "commit"? – chharvey

+0

@chharvey Bitte google "merge bubble". :) – Marco

Antwort

3

Und .. sie regelte es!

Siehe GitHub's blog on squashing your merge commits

Wenn Sie die Einstellungen für Ihren Repository gehen, werden Sie einen „Merge-Knopf“ siehe Abschnitt (unter Optionen). Es wird 2 Tasten zur Verfügung hat:

zulassen merge
hinzufügen alle verpflichtet vom Kopf Zweig zu dem Basiszweig mit einem Merge verpflichten verpflichtet.

und

erlauben Squash
Kombinieren Sie alle Commits aus dem Kopf Zweig in einem einzigen Commit in der Basiszweig zu verschmelzen.

Wenn Sie die erste Option deaktivieren (und lassen Sie die Zulassen Squash Merging aktiviert), PR "Merges" führt zu Rebase und Squashes.

+9

Außer dass Squash ist nicht gleichbedeutend mit Rebase + Fast-Forward Merge in dem Fall, wo Sie mehrere Commits, die Sie getrennt halten müssen ... –

+0

@FlorentGuillaume Sie sind absolut richtig! Leider hat das nichts damit zu tun, eine Merge-Blase zu vermeiden oder nicht. ; D – Marco

+2

Ich sage nur, dass * Squash Merging * erlauben (offensichtliche) Nebenwirkungen neben der Vermeidung Merge Bubbles. –

40

Nr

Die git blog sagt diese Schaltfläche verwenden Sie immer eine --no-ff merge (kein Vorspulen merge) erhalten.

Sie würden eine manuelle Zusammenführung tun, wenn Sie Blasen nicht zusammenführen möchten:

git checkout master 
git remote add cameronmcefee git://github.com/cameronmcefee/Spoon-Knife.git 
git fetch cameronmcefee 
git merge cameronmcefee/my-branch 
git push origin master 
+1

Sie können Ihr Repo einrichten, um Pull-Requests zu holen, ohne eine Remote hinzuzufügen: https://help.github.com/articles/checking-out-pull-requests-local –

+2

Wir haben eine einfache Automatisierung für die Fast-Forward-Zusammenführung durchgeführt auf github https://github.com/checkstyle/checkstyle/blob/master/fast-forward-merge.sh –

+0

Was ist der Grund für '--no-ff' in diesem Fall? – gvlasov

Verwandte Themen