git log pojedynczej wersji

181

Mam zobowiązanie c. Chcę uzyskać zestaw zmian tego dokładnego zatwierdzenia c + metainformation i żadnego innego. Czy jest prostszy sposób niż git log -p c^..cto zrobić?

zedoo
źródło

Odpowiedzi:

269

Możesz użyć show:

git show commit_id
Michał Trybus
źródło
60

Odpowiedź Michała Trybusa jest najlepsza ze względu na prostotę. Ale jeśli nie chcesz różnicy w swoim wyjściu, zawsze możesz zrobić coś takiego:

git log -1 -U c

To da ci dziennik zatwierdzeń, a następnie będziesz mieć pełną kontrolę nad wszystkimi opcjami rejestrowania git do celów automatyzacji. W swoim przypadku powiedziałeś, że chcesz zestawu zmian. Najbardziej czytelnym dla człowieka sposobem na osiągnięcie tego byłoby:

git log --name-status --diff-filter="[A|C|D|M|R|T]" -1 -U c

Lub, jeśli używasz wersji git większej niż 1.8.X, będzie to:

git log --name-status --diff-filter="ACDMRT" -1 -U c

Daje to wyniki podobne do:

commit {c}
Author: zedoo <[email protected]>
Date: Thu Aug 2 {time-stamp}

   {short description}
D    zedoo/foo.py
A    zedoo/bar.py

Oczywiście możesz odfiltrować dowolne zdarzenia, które uznasz za stosowne, i sformatować wynik zgodnie z potrzebami za pomocą tradycyjnych poleceń git-log, które są tutaj dobrze udokumentowane .

SuperFamousGuy
źródło
14
Jeśli nie chcesz różnicy, zrób to git show --name-only <sha1>!
dbn
16
Jeśli po prostu nie chcesz różnicy, użyj git show -s <commit>.
moeffju,
3
Co robi -1? Gdzie to jest udokumentowane?
Alex
1
@alex Zobacz wyniki w git help logsekcji „Commit Limiting”. Lub zobacz git-scm.com/book/en/v2/ ... -<number> ogranicza liczbę zatwierdzeń do wyjścia.
LarsH
14

git log -p c -1 właśnie to robi.

Robert Munteanu
źródło
4
Co robi -1? Gdzie to jest udokumentowane?
Alex
4
@alex: „-1” ogranicza liczbę wyświetlanych wpisów do podanej liczby, jest to krótka ręka dla -n 1lub --max-number=1i jest udokumentowana tutaj .
derpasaurus
0

Możesz użyć do filtrowania zmian według opisu zatwierdzenia:

git log --grep='part_of_description' -p

gdzie git log --grep='part_of_description'wybierz zatwierdzenia zawierające „part_of_description” i -ppokaż zestaw zmian każdego zatwierdzenia

natigon
źródło