registrar primero 10 en git

Dos preguntas:

  1. Cómo mostrar los primeros 10 commit en git de principio a fin. (sin twig)
  2. Cómo especificar el índice de compromiso y registrarlo. (muestre el segundo o tercero)

Sé que git use parent para vincular la confirmación, es fácil registrar la confirmación de principio a fin. como: git log HEAD~10

Pero necesito consultar desde el principio hasta el final, ¿es posible?

Simplemente registre todo con un formatting de línea y agote el resultado:

 git log --pretty=oneline | tail -n 10 
 git log -10 

Mostraría 10 confirmaciones más recientes que coinciden con la especificación de revisión (una especificación faltante significa "todas las confirmaciones").

Ver la página de manual:

 git help log 

sección Commit Limiting

 -<number>, -n <number>, --max-count=<number> Limit the number of commits to output. 

Para get los últimos 10 commits:

 git log HEAD~10..HEAD 

Para getlos en order de mayor a menor:

 git log --reverse HEAD~10..HEAD 

Tenga en count que si hay fusiones, esto puede mostrar más de 10 commits; agregue --first-parent si solo quiere recorrer el primer padre de cada twig.

Para get más detalles, consulte la documentation de git rev-list .


Editar: Ya has obtenido una respuesta útil arriba para "mostrar confirmaciones cerca del inicio del historial" (de nuevo, consulta las advertencias sobre múltiples DAG de compromiso no conectados en un repository). Pero también puedes hacer, por ejemplo:

 git log --no-walk `git rev-list HEAD | tail -n 10` 

y:

 git log --no-walk `git rev-list --reverse HEAD | head -n 10` 

dependiendo de qué order quieres los resultados.

Simplemente registre todo lo inverso -1 significa enumerar un logging

 git log --reverse -1 

Porque … más detalles: p

  1. Cómo mostrar los primeros 10 commit en git de principio a fin. (sin twig)
  2. Cómo especificar el índice de compromiso y registrarlo. (muestre el segundo o tercero)

Por (sin twig), es posible que esté preguntando sobre el reflog lugar de cualquier cadena de ascendencia dada. Lo siguiente no tiene nada que ver con la twig en la que se encuentra.

git log -g --pretty=oneline | tail -10

 <sha> HEAD@{###}: action: summary (old) <sha> HEAD@{###}: action: summary (older) ... <sha> HEAD@{###}: action: summary (oldest) 
  • -g es --walk-reflogs En lugar de caminar por la cadena de ancestros commit, camina reflog entries.q
  • add |cut -d ' ' -f 2|tr -d ':' > log para registrar solo el índice de confirmación de reflog.

Lo siguiente mostrará los antepasados ​​más antiguos de la twig actualmente desprotegida.

git log --reverse --pretty=oneline | head -10 | cat -n

 1 <sha> summary (oldest) 2 <sha> summary (second) 
  • --reverse los commits en order inverso.
  • No se puede usar simplemente -n 10 o -10 ya que se rompe --reverse
  • cat -n agrega numbers de línea (¿índice de compromiso?)