¿Cómo puedo imprimir el registro de una sucursal que no sea la actual?

82

Estoy en una rama con algunos cambios. Cambiar de rama es una molestia ya que algunos archivos están bloqueados por procesos, por lo que para cambiar de rama tendría que detener todos los procesos que tienen bloqueos, luego stashlos cambios antes de revisar la otra rama para ver su registro.

¿Es posible ver el registro de una rama diferente, sin tener que verificarlo?

BanksySan
fuente
1
¿Ha intentado git log <branch>dónde <branch>está el nombre de la rama de interés?
jub0bs
2
@Jubobs, no, no lo hice. Debería intentar lo obvio antes de buscar en Internet y encontrar sugerencias exóticas en cherryy rev-list.
BanksySan

Respuestas:

123

TL; DR

Utilizar

git log <branch>

donde <branch>es el nombre de la rama de interés.

Desde la git-logpágina de manual ...

Una versión simplificada de la git-logsinopsis dada en la página de manual de ese comando es

git log [<revision range>]

Más abajo, puedes encontrar el siguiente pasaje:

Cuando no <revision range>se especifica, el valor predeterminado HEADes (es decir, todo el historial que lleva a la confirmación actual)

En otras palabras, git loges equivalente a git log HEAD. Si estás en una rama, llamada mybranch, digamos, este comando también es equivalente a git log mybranch.

Desea limitar el registro a las confirmaciones accesibles desde otra rama, es decir, una rama en la que no se encuentra actualmente. La forma más sencilla de hacerlo es pasar explícitamente el nombre de la rama de interés a git log:

git log <branchname>

Consulte la página de manual de gitrevisions para obtener más detalles sobre las muchas formas que <revision-range>puede adoptar el argumento.

jub0bs
fuente
Parece que primero debe verificar la rama localmente para ejecutar "git log" de esta manera. Al menos git 2.27.0 se comporta así.
a_girl
@a_girl No estoy seguro de lo que quiere decir con "revisado localmente" aquí. Puede ejecutar esto en una sucursal local (por ejemplo master), ya sea que esté desprotegido o no, y en una sucursal remota (por ejemplo origin/master).
jub0bs
1
ooooohhh, ahora lo tengo. Lo intenté git log mybranchy arrojó un error, pero luego, cuando lo ejecuté git checkout mybranch; git checkout master; git log mybranch, funcionó incluso sin "origen /". Por eso pensé que primero tenía que pagar mi sucursal. Pero simplemente tuve que usar "git log origin / mybranch" para buscar un historial de la rama remota. Gracias.
a_girl