2011-11-09 11 views
23

Oto przykład wykres oddziału historię/commit:Git lista oddziały połączyły się gałęzi, ale nie w inny

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

w normalnych okolicznościach, możemy połączyć oddział integracyjny do pana i zrobione. Ale ... istnieją wyjątkowe przypadki, w których tylko niektóre cechy muszą zostać połączone w master ... ex: only feature1. W takim przypadku Feature1 oddział połączyły się mistrza (popełnić R):

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

Pytanie: Chciałbym komendę, która powie mi, które gałęzie są połączone w integracji, ale nie w pana. Wynik powinien być: feature2 i feature3.

Czy odsyłacz między tymi 2 poleceniami jest jedynym sposobem?

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

Może to być również polecenie, które listuje zatwierdzenia w gałęzi integracji nieobecnej w systemie głównym. Wynik powinien brzmieć: J, O, Q

+11

Dobra robota w sztuce ASCII! –

Odpowiedz

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

Dowolna alternatywa dla Windows? –

+0

Spróbuj ['fc'] (http://ss64.com/nt/fc.html) w Windows – Andy

+0

Wygląda na to, że obecna wersja programu msysgit nie obsługuje zastępowania procesu ... Ponadto wydaje się, że polecenie fc w git bash wydaje być unixem, a nie okiennym. –

Powiązane problemy