Saltar al contenido

git adelante/detrás de la información entre el maestro y la rama?

Hacemos una revisión profunda cada posts de nuestra web con el objetivo de enseñarte siempre la información más veraz y actualizada.

Solución:

Aquí hay un truco que encontré para comparar dos ramas y mostrar cuántas confirmaciones tiene cada rama por delante de la otra (una respuesta más general a su pregunta 1):

Para local sucursales:
git rev-list --left-right --count master...test-branch

Para remoto sucursales:
git rev-list --left-right --count origin/master...origin/test-branch

Esto da una salida como la siguiente:

1 7

Esta salida significa: “En comparación con master, test-branch hay 7 confirmaciones por delante y 1 confirmaciones por detrás”.

También puede comparar sucursales locales con sucursales remotas, por ejemplo origin/master...master para saber cuantos comete el local master la sucursal está delante/detrás de su contraparte remota.

En primer lugar, para ver cuántas revisiones tiene atrasadas localmente, debe hacer un git fetch para asegurarse de tener la información más reciente de su control remoto.

La salida predeterminada de git status te dice cuántas revisiones estás por delante o por detrás, pero por lo general encuentro esto demasiado detallado:

$ git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 2 and 1 different commit each, respectively.
#
nothing to commit (working directory clean)

yo prefiero git status -sb:

$ git status -sb
## master...origin/master [ahead 2, behind 1]

De hecho, alias esto para simplemente git sy este es el comando principal que uso para verificar el estado.

Para ver la diferencia en las “revisiones por delante” de masterpuedo excluir las “revisiones posteriores” de origin/master:

git diff master..origin/master^

Para ver la diferencia en las revisiones “detrás” de origin/masterpuedo excluir las “revisiones anticipadas” de master:

git diff origin/master..master^^

Si hay 5 revisiones por delante o por detrás, podría ser más fácil escribir así:

git diff master..origin/master~5
git diff origin/master..master~5

ACTUALIZAR

Para ver las revisiones anteriores/posteriores, la sucursal debe estar configurada para rastrear otra sucursal. Para mí, este es el comportamiento predeterminado cuando clono un repositorio remoto, y luego presiono una rama con git push -u remotename branchname. Mi versión es 1.8.4.3, pero ha estado funcionando así desde que tengo memoria.

A partir de la versión 1.8, puede configurar la rama de seguimiento de esta manera:

git branch --track test-branch

A partir de la versión 1.7, la sintaxis era diferente:

git branch --set-upstream test-branch

Con Git 2.5+, ahora tiene otra opción para ver adelante/atrás de todas las sucursales que están configuradas para enviar a una sucursal.

git for-each-ref --format="%(push:track)" refs/heads

Ver más en “Visualización de confirmaciones de Git sin enviar”

Si te ha sido de utilidad este artículo, agradeceríamos que lo compartas con el resto seniors de esta forma nos ayudas a difundir este contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *