¿Cómo enumerar confirmaciones desde ciertas confirmaciones?

144

¿Hay alguna forma de obtener una lista de confirmaciones de un número de confirmación dado a HEAD?

Sé que esto es posible para la fecha de confirmación, pero lo necesito para el número de confirmación y parece que no puedo encontrar ninguna documentación, o incluso si es posible.

ehftwelve
fuente
¿Qué comando Git estabas usando para enumerar confirmaciones de un nombre de confirmación dado?
Greg Hewgill
Te refieres a cometer hash, ¿verdad? También puede usar HEAD~10para significar "10 confirmaciones antes de HEAD" para que pueda hacer git log HEAD~10.., si eso es lo que quiere decir con número de confirmación.
Cascabel

Respuestas:

174
git rev-list <since_hash>..HEAD

o para incluir el commit:

git rev-list <since_hash>^..HEAD

Puede usar en git loglugar de git rev-listtambién para obtener detalles adicionales.

manojlds
fuente
Esto funcionó perfectamente para mí, ¡gracias! Juro que había intentado esto. Debe haber cometido un error.
ehftwelve
@manojlds Sé que HEADapunta a las confirmaciones duradas , pero ¿cuál es el significado de^
Kasun Siyambalapitiya
2
@KasunSiyambalapitiya ^es un alias para el primer padre. Consulte "REVISIONES ESPECIFICANTES" en kernel.org/pub/software/scm/git/docs/git-rev-parse.html ; consulte también el manual git-scm.com/book/en/v2/Git-Tools-Revision -Selección - o stackoverflow.com/questions/2221658/…
Michaelangel007
2
Obtengo una lista enorme, enorme de SHA ... incluso para una confirmación que es solo una vuelta (una parte de una fusión). ¿Qué me dice y cómo es útil?
ErikE
Si solo le importa el recuento de confirmaciones, puede especificar la --countopción después rev-list. es decir:git rev-list --count <since_hash>..HEAD
Jon Schneider
75
git log <hash>..

Es la menor cantidad de tipeo. Omitir "HEAD" supone que eso es lo que querías decir. Rev-list también funcionaría.

Adam Dymitruk
fuente
2
Éste es mi favorito. Me gusta combinarlo con --oneline. En lugar de <hash>, por supuesto, también puedes usar una referencia como el nombre de una sucursal.
codener
2
También git log HEAD~#..dónde #está el número de confirmaciones recientes deseadas.
usuario3.1415927
¡Definitivamente la mejor y más concisa opción!
Ricardo Rodrigues
37

Puede ejecutar el siguiente comando git desde el shell:

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

Suponiendo que por "número de compromiso", se refiere a hash de compromiso:

git log <commit-hash>..HEAD
hammar
fuente
1

Si alguien aquí está tratando de descubrir cómo MENOS a través de la salida de git logcomenzar en un determinado compromiso, paginar hacia atrás, es tan simple como git log <hash>.

Matthew Hinea
fuente