2010-06-20 11 views
211

Powiel możliwe:
Viewing Unpushed Git CommitsLista Git nie zobowiązuje popychany do pochodzenia jeszcze

Jak wylistować wszystkie rewizje, które nie zostały zsunięte do pochodzenia jeszcze?

Alternatywnie, jak ustalić, czy zatwierdzenie z konkretnym hash zostało już przekazane do miejsca pochodzenia?

+0

zaczynające Git 2.5+ (Q2 2015), rzeczywista odpowiedź byłaby 'git log @ {push} ..'. Zobacz ten nowy skrót '@ {push}' (odwołując się do gałęzi zdalnego śledzenia, do której naciskasz) w [moja odpowiedź na temat "Przeglądanie niewspółczytanych komunikatów Git"] (http://stackoverflow.com/a/30720302/6309) – VonC

Odpowiedz

295

git log origin/master..master

lub, bardziej ogólnie:

git log <since>..<until>

Można to wykorzystać z grep, aby sprawdzić konkretny, znany popełnić:

git log <since>..<until> | grep <commit-hash>

lub można również użyj git-rev-list, aby wyszukać określone zatwierdzenie:

git rev-list origin/master | grep <commit-hash>

+2

Co jeśli masz już 'git fetch''d, a pochodzenie zawiera więcej zatwierdzeń, których jeszcze nie wyciągnąłeś? wtedy 'origin/develop' jest nowszy niż' develop' - czy ta odpowiedź nadal będzie zawierała oczekiwaną listę commitów, które nie zostały jeszcze wypchnięte na początek? – Kidburla

+2

@Kidburla Tak, to nadal działa w takiej sytuacji. 'git log origin/develop..develop' wyświetli listę wszystkich zatwierdzeń, które nie zostały przekazane do gałęzi rozwijającej pochodzenie. W odwrotnej kolejności, 'git log develop..origin/develop', będzie zawierał listę wszystkich zmian, które są w fazie rozwoju, ale nie zostały jeszcze wciągnięte w rozwój lokalny. –

+0

Jeśli '' ma być bieżącym HEAD (ostatnim zatwierdzeniem w wyrejestrowanym oddziale), to może po prostu zostać pominięte. Te dwie kropki są jednak nadal wymagane: 'git log origin/master..' (tak samo jak' git log origin/master..HEAD') – CoDEmanX

33

Jak ustalić, czy popełnić ze szczególnym hash zostały zepchnięte na już pochodzenia?

# list remote branches that contain $commit 
git branch -r --contains $commit 
+5

Fajnie, nie wiedziałem o tym. +1 –

4

Znalazłem fajny skrypt, który wśród innych użytecznych rzeczy, wyświetla informacje o unpushed zobowiązuje:

git-wtf

+0

Hum, jak to zainstalować? wygląda na to, że działa tylko w systemie UNIX. Ale gdzie przechowywać scenariusz? (Nie jestem przyzwyczajony do kopiowania skryptów z internetu). Dzięki. – Vadorequest

+4

Link nie działa – Rebs

+0

Naprawiono uszkodzone łącze. Dlatego właśnie A) Nie łączymy się z konkretnymi obrotami, jeśli nie jesteśmy zainteresowani tą konkretną wersją, i B) nie przepisuj historii Git/force, przesuwając już opublikowane zatwierdzenia! –

Powiązane problemy