it-swarm.com.de

Wie liste ich Zweige mit einem bestimmten Commit auf?

Wie kann ich git abfragen, um herauszufinden, welche Zweige ein bestimmtes Commit enthalten? gitk listet normalerweise die Zweige auf, es sei denn, es gibt zu viele. In diesem Fall steht nur "many (38)" oder so ähnlich. Ich muss die vollständige Liste kennen, oder zumindest, ob bestimmte Zweige das Commit enthalten.

999
Andrew Arnott

Aus der Git-Branch-Handbuchseite :

_ git branch --contains <commit>
_

Nur Zweige auflisten, die das angegebene Commit enthalten (HEAD, falls nicht angegeben). Impliziert _--list_.


_ git branch -r --contains <commit>
_

Listet Fernverfolgungszweige sowie (wie in ser3941992 's answer unten) das ist "lokale Zweige, die eine direkte Beziehung zu einem entfernten Zweig haben".


Siehe auch diesen git ready Artikel.

Das _--contains_ -Tag zeigt an, ob in Ihrer Filiale noch ein bestimmter Commit eingegangen ist. Möglicherweise haben Sie ein Commit SHA von einem Patch erhalten, von dem Sie dachten, dass Sie ihn angewendet haben, oder Sie möchten nur prüfen, ob das Commit für Ihr bevorzugtes Open Source-Projekt, das die Speichernutzung um 75% reduziert, noch nicht abgeschlossen ist.

_$ git log -1 tests
commit d590f2ac0635ec0053c4a7377bd929943d475297
Author: Nick Quaranto <[email protected]>
Date:   Wed Apr 1 20:38:59 2009 -0400

    Green all around, finally.

$ git branch --contains d590f2
  tests
* master
_

Hinweis: Wenn sich das Commit in einem Fernverfolgungszweig befindet, fügen Sie die Option _-a_ hinzu .
(als MichielB Kommentare nten )

_git branch -a --contains <commit>
_

MatrixFrog gibt an, dass nur angezeigt wird, welche Zweige dieses genaue Commit enthalten.
Wenn Sie wissen möchten, welche Zweige ein "äquivalentes" Commit enthalten (dh welche Zweige haben dieses Commit ausgewählt), ist dies git cherry = :

Da _git cherry_ die Änderungsmenge und nicht die Festschreibungs-ID (sha1) vergleicht, können Sie mit _git cherry_ herausfinden, ob eine Festschreibung vorliegt Sie lokal erstellt haben, wurde _<upstream>_ unter einer anderen Festschreibungs-ID angewendet.
Dies ist beispielsweise der Fall, wenn Sie Patches _<upstream>_ per E-Mail einspeisen, anstatt Commits direkt zu senden oder abzurufen.

_           __*__*__*__*__> <upstream>
          /
fork-point
          \__+__+__-__+__+__-__+__> <head>
_

(In diesem Fall werden die mit "_-_" gekennzeichneten Commits nicht mit "_git cherry_" angezeigt. Dies bedeutet, dass sie bereits in "_<upstream>_" vorhanden sind.)

1357
VonC

Sie können ausführen:

git log <SHA1>..HEAD --ancestry-path --merges

Aus dem Kommentar des letzten Commits in der Ausgabe können Sie Originalzweig name entnehmen

Beispiel:

       c---e---g--- feature
      /         \
-a---b---d---f---h---j--- master

git log e..master --ancestry-path --merges

commit h
Merge: g f
Author: Eugen Konkov <>
Date:   Sat Oct 1 00:54:18 2016 +0300

    Merge branch 'feature' into master
17
Eugen Konkov