Zeige Zweige, die kein Commit enthalten

8

git branch -a --contains <hash> gibt mir alle Zweige, die hash enthalten. Was ich will, ist git branch -a --no-contains <hash> . Leider scheint es keinen Befehl zu geben, dies zu erreichen, also denke ich, dass die Lösung so etwas wie folgt ist:

git branch -a | grep -v output of(git branch -a --contains) , aber meine Bash ist der Aufgabe nicht gewachsen.

Show alle Zweige, die A festschreiben, sind eingeschaltet, und Festschreibung B ist nicht eingeschaltet? scheint zu gelten, aber der Ansatz erscheint komplizierter als nötig.

Was ist der beste / einfachste Ansatz, um das oben genannte zu erreichen?

    
kayaker243 22.05.2012, 17:55
quelle

3 Antworten

11

grep hat eine Option -F , die mit festen Zeichenfolgen übereinstimmt. Wäre nützlich für das, was Sie tun.

%Vor%

Leider filtert -F Zweignamen heraus, die teilweise übereinstimmen. Wie von antak vorgeschlagen, können wir stattdessen comm für ein zuverlässigeres Diff verwenden.

%Vor%     
leedm777 22.05.2012, 19:17
quelle
2

Da die akzeptierte Antwort ungültig wird, wenn die Zweignamen teilweise übereinstimmen, hier ist eine, die diese Situation behandelt.

%Vor%

| sort kann am Ende beider Befehle hinzugefügt werden, wenn die comm: file 1 is not in sorted order Warnung Sie stört. Dies ist jedoch nicht notwendig, um korrekte Ergebnisse zu erhalten, da die Reihenfolge der beiden Eingänge äquivalent ist.

    
antak 27.11.2015 02:50
quelle
2

Das Flag --no-contains wurde in Git 2.13 .

    
nonsensickle 21.06.2017 23:39
quelle

Tags und Links