2013-07-22 14 views
8

Mam gałąź funkcji zwięźle nazwaną feature, która ma około 100 zatwierdzeń wszystkich związanych z funkcją sortowania. Wszystkie te zatwierdzenia zostały scalone z czasem do głównego oddziału. Chcę wyświetlić listę wszystkich zatwierdzeń znajdujących się w oddziale, aby móc ponownie dodać tę funkcję do innego projektu.Lista wszystkich zatwierdzeń w gałęzi tematów

Zasadniczo chcę mieć identyfikatory commit dla zielonych kropek na poniższym wykresie.

relevant commits

Jak mogę to zrobić w Git drugiej następnie przechodząc do gitk lub podobne narzędzie i ręcznie zbierając wszystkie istotne popełnić identyfikatory?

Odpowiedz

3

Pomimo odpowiedź jest podana i akceptowane Proponuję bardziej automatyczny sposób na to zrobić (ale to tylko praca jeśli nie połączyć swój master do feature):

Biorąc pod uwagę następującą historię:

--A---B---C---D---E---F---G (master) 
     \ / /
     H---J-------K  (feature) 

Zasadniczo chcemy wykonać git log B..feature.

git log --format='%H' feature..master | tail -1 | \ 
xargs -I '{}' git log '{}'^..feature 

git log --format='%H' feature..master | tail -1 znajdzie zobowiązać się do master że została wykonana tuż po utworzeniu feature oddziału - to C

A przodek C - B będzie również przodkiem pierwszy popełnić H z feature gałąź.

Następnie xargs -I '{}' git log '{}'^..feature (czyli zamienia się git log B..feature) po prostu pokazuje zobowiązuje że jest osiągalny z feature Ale nie osiągalny z B.

+2

Mam nieco niechlujny początek gałęzi 'feature', która wymaga ręcznego wyboru wywołania startowego, ale poza tym twój przepis działa dobrze. Oto jedna linijka: 'git log $ (git rev-list feature..master | tail -1)^.. feature' – sanmai

+2

zobacz [Znalezienie punktu rozgałęzienia za pomocą Git?] (Http://stackoverflow.com/q/ 1527234), aby uzyskać szczegółowe informacje, jak znaleźć punkt początkowy oddziału – CharlesB

6

Jeżeli masz punkt początkowy konkretnej branży, np SHA1, spróbuj tego:

git log --pretty=oneline SHA1^..feature 
Powiązane problemy