Mostrar el historial de commits para una rama usando Git Log con rango

Ankit Raj Goyal 30 enero 2023
  1. Historial de commits de Git para rama usando git log y opciones de limitación avanzadas
  2. Git Commit History para Branch usando la sintaxis de doble punto <branch1>..<branch2>
  3. Atajo útil con git log para escribir unos pocos caracteres menos para mostrar el historial del commit de Git para la rama
  4. Opción útil para ver solo las últimas commits con log en Git Mostrar commits solo en la rama actual
  5. Git Commit History para Branch con el operador Caret ^
  6. Git Commit History para Branch con la opción --not
  7. Recursos
Mostrar el historial de commits para una rama usando Git Log con rango

El git log tiene muchas opciones limitantes para obtener un subconjunto de commits de su historial de repositorio. Demostramos cómo git log con range usando la sintaxis de doble punto, el operador de intercalación ^, la opción --not y varios accesos directos nos ayudan a ver el historial de git commit solo para la rama.

Git extrae su poder de este rico sistema de consulta de revisión que permite a los usuarios administrar sus ramas y diseñar flujos de trabajo eficientes con ellos.

Historial de commits de Git para rama usando git log y opciones de limitación avanzadas

Los repositorios de Git pueden crecer con largos historiales de commits. Ver el historial completo no es muy útil en tales casos.

El comando git log nos brinda muchas opciones útiles para extraer solo el subconjunto de commits del historial del repositorio que necesitamos.

git log [formatting options] [limiting options]

Las [formatting options] nos permiten mostrar información diferente sobre nuestras commits, mientras que las [limiting options] nos ayudan a seleccionar las commits que queremos ver.

Cuando proporcionamos los valores de rango correctos en estas opciones de limitación, podemos realizar commits de git show en la rama actual.

Git Commit History para Branch usando la sintaxis de doble punto <branch1>..<branch2>

La sintaxis de doble punto muestra las commits a las que podemos llegar desde branch2 pero no desde branch1.

Supongamos que creamos un nuevo experiment_branch desde master. Luego, nos comprometemos con ambas ramas pero no las fusionamos todavía.

Si ahora hacemos un git log en experiment_branch, se muestra el historial completo, incluyendo los commits que hicimos en master incluso antes de crear experiment_branch.

commits en master antes del experimento

Este no es un comportamiento muy útil. Un caso de uso común es cuando queremos ver solo las commits no fusionadas en experiment_branch.

Lo hacemos con el siguiente comando.

git log master..experiment_branch

Se puede acceder a todas las commits desde experiment_branch pero no desde master (esencialmente, todas las commits no fusionadas en la rama experimental).

git commit history para la sintaxis de la rama doubledot

También podríamos invertir el orden de las ramas para el caso inverso para ver el estado del master en el que vamos a fusionar nuestro experiment_branch.

Nuestro master se ve así:

dominar nuevas commits después del experimento

Cuando hacemos:

git log experiment_branch..master

Solo vemos las nuevas commits en master después de crear nuestra rama experimental.

nuevas commits - punto doble de la rama maestra

Atajo útil con git log para escribir unos pocos caracteres menos para mostrar el historial del commit de Git para la rama

Si no proporcionamos ninguna de las dos ramas en la sintaxis de doble punto, Git las establece por defecto en HEAD.

Podemos usar esto con una opción inteligente de git checkout para acortar nuestro comando git log.

Primero, cambiamos a nuestra rama experimental.

git checkout experiment_branch

Ahora el HEAD apunta a experiment_branch.

Ahora usamos la versión abreviada de la sintaxis de rango de doble punto, omitiendo el operando de la rama derecha.

git log master..

Git establece por defecto la rama derecha en el HEAD actual, nuestro experiment_branch, y obtenemos el mismo historial de solo las commits no fusionadas que arriba.

git forma corta doble punto

Opción útil para ver solo las últimas commits con log en Git Mostrar commits solo en la rama actual

Nuestro experiment_branch podría tener una larga historia con muchas commits no fusionadas.

experimentar una larga historia muchas commits no fusionadas

Es posible que queramos ver solo las últimas commits en tal caso.

git log -2 master..

La opción -2 muestra solo las últimas 2 commits de nuestro subconjunto seleccionado del historial.

mostrar solo las últimas commits en el historial

Git Commit History para Branch con el operador Caret ^

El operador de intercalación ^ excluye todas las commits accesibles desde la rama en la que opera. Podemos usar esto para mostrar solo el historial de nuestra rama actual.

git log ^master experiment_branch

mostrar el historial de commits para el símbolo de intercalación de la rama

Git Commit History para Branch con la opción --not

También podemos lograr el mismo resultado usando la opción --not antes del nombre de una rama. Esto excluye todas las commits accesibles desde esa rama.

git log experiment_branch --not master

Vemos que hace lo mismo y solo muestra las commits no fusionadas en nuestro experiment_branch.

mostrar el historial de commits para la rama, no la opción

Recursos

  1. https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History
  2. https://rakhesh.com/coding/git-view-the-commit-log-of-a-remote-branch/
  3. https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History
  4. https://stackoverflow.com/questions/14889017/how-to-show-local-branch-history#14889649
  5. https://stackoverflow.com/questions/16974204/how-to-get-commit-history-for-just-one-branch

Artículo relacionado - Git Commit