Mostrar el historial de commits para una rama usando Git Log con rango
-
Historial de commits de Git para rama usando
git logy opciones de limitación avanzadas -
Git Commit History para Branch usando la sintaxis de doble punto
<branch1>..<branch2> -
Atajo útil con
git logpara escribir unos pocos caracteres menos para mostrar el historial del commit de Git para la rama -
Opción útil para ver solo las últimas commits con
logen Git Mostrar commits solo en la rama actual -
Git Commit History para Branch con el operador Caret
^ -
Git Commit History para Branch con la opción
--not - Recursos
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.

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).

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í:

Cuando hacemos:
git log experiment_branch..master
Solo vemos las nuevas commits en master después de crear nuestra rama experimental.

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.

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.

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.

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

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.

Recursos
- https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History
- https://rakhesh.com/coding/git-view-the-commit-log-of-a-remote-branch/
- https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History
- https://stackoverflow.com/questions/14889017/how-to-show-local-branch-history#14889649
- https://stackoverflow.com/questions/16974204/how-to-get-commit-history-for-just-one-branch
Artículo relacionado - Git Commit
- Agregar todos los archivos para confirmar excepto un archivo
- Agregar un archivo a la última confirmación en Git
- Cierra el editor de Git Commit en Windows
- Combinar selectivamente los cambios de diferentes ramas en Git
- Comprender la función de aprobación de Git Commit
- Confirmaciones de la lista de Git