Wie liste ich Commits seit bestimmten Commits auf?

143

Gibt es überhaupt eine Liste von Commits von einer bestimmten Commit-Nummer an HEAD?

Ich weiß, dass dies bis zum Festschreibungsdatum möglich ist, aber ich brauche es bis zur Festschreibungsnummer, und ich kann anscheinend keine Dokumentation finden, oder selbst wenn dies möglich ist.

ehftwelve
quelle
Mit welchem ​​Git-Befehl haben Sie Commits von einem bestimmten Commit-Namen aufgelistet?
Greg Hewgill
Du meinst doch Commit Hash, oder? Sie können auch HEAD~10"10 Commits vor HEAD" verwenden, damit Sie dies tun können git log HEAD~10.., wenn Sie dies mit Commit-Nummer meinen.
Cascabel

Antworten:

173
git rev-list <since_hash>..HEAD

oder um das Commit einzuschließen:

git rev-list <since_hash>^..HEAD

Sie können git logstattdessen git rev-listauch verwenden, um zusätzliche Details zu erhalten.

manojlds
quelle
Das hat bei mir perfekt funktioniert, danke! Ich schwöre, dass ich das versucht hatte. Muss einen Fehler gemacht haben.
Zwölf
@manojlds Ich weiß, dass dies HEADauf die letzten Commits hinweist, aber was bedeutet das^
Kasun Siyambalapitiya
2
@KasunSiyambalapitiya ^ist ein Alias ​​für den ersten Elternteil. Siehe "SPEZIFIZIEREN VON REVISIONEN" in kernel.org/pub/software/scm/git/docs/git-rev-parse.html - siehe auch das Handbuch git-scm.com/book/en/v2/Git-Tools-Revision -Selection - oder stackoverflow.com/questions/2221658/…
Michaelangel007
2
Ich bekomme eine riesige Liste von SHAs ... selbst für ein Commit, das nur einen Rückstand hat (ein Teil einer Zusammenführung). Was sagt es mir und wie ist das nützlich?
ErikE
Wenn Sie sich nur um die Anzahl der Commits kümmern , können Sie die --countOption danach angeben rev-list. dh:git rev-list --count <since_hash>..HEAD
Jon Schneider
75
git log <hash>..

Ist die geringste Menge an Eingabe. Das Weglassen von "HEAD" setzt voraus, dass Sie das gemeint haben. Rev-Liste würde auch funktionieren.

Adam Dymitruk
quelle
2
Dieser ist mein Favorit. Ich kombiniere es gerne mit --oneline. Anstelle von <hash>natürlich können Sie auch eine Referenz wie einen Filialnamen verwenden.
Codener
2
Auch git log HEAD~#..wo #ist die Anzahl der zuletzt gewünschten Commits.
user3.1415927
Auf jeden Fall die beste und prägnanteste Option!
Ricardo Rodrigues
37

Sie können den folgenden git-Befehl in der Shell ausführen:

git log --pretty=oneline commit-id...HEAD
Matthieu
quelle
12

Angenommen, mit "Commit-Nummer" meinen Sie Commit-Hash:

git log <commit-hash>..HEAD
Hammar
quelle
1

Wenn jemand hier versucht herauszufinden, wie man WENIGER durch die Ausgabe git logeines bestimmten Commits beginnt und rückwärts paginiert, ist es so einfach wie git log <hash>.

Matthew Hinea
quelle