Jak wyświetlić listę zmian od czasu określonego zatwierdzenia?

144

Czy w ogóle można pobrać listę zatwierdzeń z podanego numeru zatwierdzenia do HEAD?

Wiem, że jest to możliwe przed datą zatwierdzenia, ale potrzebuję tego według numeru zatwierdzenia i nie mogę znaleźć żadnej dokumentacji, a nawet jeśli jest to możliwe.

ehftwelve
źródło
Jakiej komendy Git użyłeś, aby wyświetlić listę zmian z podanej nazwy zatwierdzenia?
Greg Hewgill
Masz na myśli popełnienie haszyszu, prawda? Możesz także użyć HEAD~10określenia „10 zatwierdzeń przed HEAD”, abyś mógł to zrobić git log HEAD~10.., jeśli to masz na myśli przez numer zatwierdzenia.
Cascabel

Odpowiedzi:

174
git rev-list <since_hash>..HEAD

lub aby dołączyć zmianę:

git rev-list <since_hash>^..HEAD

Możesz użyć git logzamiast, git rev-listaby uzyskać dodatkowe informacje.

manojlds
źródło
To zadziałało idealnie dla mnie, dzięki! Przysięgam, że próbowałem tego. Musiał popełnić błąd.
ehftwelve
@manojlds Wiem, że HEADwskazuje na ostatnie zatwierdzenia, ale jakie jest znaczenie^
Kasun Siyambalapitiya
2
@KasunSiyambalapitiya ^to alias pierwszego rodzica. Zobacz „ OKREŚLANIE ZMIAN ” w kernel.org/pub/software/scm/git/docs/git-rev-parse.html - zobacz także podręcznik git-scm.com/book/en/v2/Git-Tools-Ragraph -Wybór - lub stackoverflow.com/questions/2221658/…
Michaelangel007
2
Otrzymuję ogromną listę SHA ... nawet dla zatwierdzenia, które jest tylko jeden wstecz (jedna noga scalenia). Co mi mówi i jak to jest przydatne?
ErikE
Jeśli zależy Ci tylko na liczbie zatwierdzeń, możesz określić --countopcję po rev-list. tj .:git rev-list --count <since_hash>..HEAD
Jon Schneider
75
git log <hash>..

To najmniejsza ilość wpisywania. Pomijanie słowa „GŁOWA” zakłada, że ​​o to ci chodziło. Rev-lista też by działała.

Adam Dymitruk
źródło
2
Ten jest moim ulubionym. Lubię to łączyć z --oneline. Zamiast <hash>, oczywiście, możesz też użyć odwołania, takiego jak nazwa gałęzi.
koder,
2
Również git log HEAD~#..gdzie #jest liczba żądanych ostatnich zatwierdzeń.
user3.1415927
zdecydowanie najlepsza i najbardziej zwięzła opcja!
Ricardo Rodrigues
37

Możesz uruchomić następujące polecenie git z powłoki:

git log --pretty=oneline commit-id...HEAD
Matthieu
źródło
12

Zakładając, że przez „numer zatwierdzenia” masz na myśli skrót zatwierdzenia:

git log <commit-hash>..HEAD
hammar
źródło
1

Jeśli ktoś tutaj próbuje dowiedzieć się, jak MNIEJ poprzez wyjście git logzaczynające się od określonego zatwierdzenia, paginując wstecz, jest to tak proste, jak git log <hash>.

Matthew Hinea
źródło