Git-Listenzweige wurden mit einem Zweig zusammengeführt, aber nicht mit einem anderen

Lesezeit: 2 Minuten

Benutzer-Avatar
Guillaume Morin

Hier ist ein Beispieldiagramm des Branch/Commit-Verlaufs:

A---  master
|\
| B-----G--------P feature2
|\       \        \
| -----F--J--L--O--Q integration
|\    /     /  /
| C--E--H--K  /    feature1
 \           /
  D---------M feature3

Unter normalen Umständen führen wir den Integrationszweig mit dem Master zusammen und fertig. Aber … es gibt Ausnahmefälle, in denen nur ein bestimmtes Feature mit dem Master zusammengeführt werden muss … Bsp.: nur Feature1. In diesem Fall wird der Zweig feature1 mit dem Master zusammengeführt (commit R):

A-------------------------R   master
|\                       /
| B-----G--------P      /     feature2
|\       \        \    /
| -----F--J--L--O--Q  /       integration
|\    /     /  /     /
| C--E--H--K--/------         feature1
 \           /
  D---------M                 feature3

Frage: Ich hätte gerne einen Befehl, der mir mitteilt, welche Zweige in der Integration, aber nicht im Master zusammengeführt werden. Ergebnis sollte sein: feature2 und feature3.

Ist ein Querverweis zwischen diesen beiden Befehlen der einzige Weg?

git branch --no-merged master
git branch --merged integration

Oder es könnte auch ein Befehl sein, der Merge-Commits im Integrationszweig auflistet, die im Master nicht vorhanden sind. Ergebnis sollte sein: J,O,Q

  • Gut gemacht mit der ASCII-Kunst!

    – Adam Dymitruk

    9. November 2011 um 20:30 Uhr

Benutzer-Avatar
Adam Dymitruk

 comm -12 <(sort <(git branch --no-merged master)) <(sort <(git branch --merged integration))

  • Nun, es scheint, dass die aktuelle Version von msysgit keine Prozesssubstitution unterstützt … Außerdem scheint der fc-Befehl in git bash der Unix-Befehl zu sein, nicht der Windows-Befehl.

    – Guillaume Morin

    10. November 2011 um 13:54 Uhr

  • @GuillaumeMorin Versuchen Sie es which fc um zu sehen welche fc Befehl verwendet wird. Wenn dies nicht das gewünschte ist, können Sie den vollständigen Pfad eingeben, um das “richtige” auszuführen fc Befehl.

    – Code-Lehrling

    7. Juni 2013 um 22:32 Uhr


  • Nur eine schnelle Hinzufügung – “comm” muss anscheinend die Eingaben sortieren, also sollte dies die richtigen Ergebnisse liefern: comm -12 <(sort <(git branch --no-merged master)) <(sort <(git branch --merged integration))

    – Paul Molodowitch

    6. März 2017 um 18:22 Uhr


  • Wir sehen, dass dies ziemlich uneinheitliche Ergebnisse zwischen den Entwicklern liefert. Wir sind in der Lage, dies ein wenig abzumildern, indem wir die verwenden -r auf beiden Verzweigungsbefehlen und läuft gegen die Remotes origin/master und origin/integration: comm -12 <(sort <(git branch -r --no-merged origin/master)) <(sort <(git branch -r --merged origin/integration))

    – JamesWilson

    22. September 2017 um 23:04 Uhr


1176040cookie-checkGit-Listenzweige wurden mit einem Zweig zusammengeführt, aber nicht mit einem anderen

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

Privacy policy