Si lo que desea es ver las confirmaciones salientes de la rama actual, puede utilizar el siguiente:
git config alias.unpushed "log @{u}.. --pretty=format:'%h %an %s'"
Esto hace que git log
para mostrar todas las confirmaciones accesible desde HEAD
excluyendo aquellos accesible desde la rama ascendente. El argumento @{u}..
es equivalente a @{u}..HEAD
, y @{u}
es una abreviatura de la confirmación ascendente de la rama actual (por ejemplo, origin/foo
si la rama desprotegida es foo
).
Si quieres ver todos los envíos unpushed de todas las ramas, hacer esto:
git config alias.unpushed "log --all --not --remotes --tags --pretty=format:'%h %an %s'"
Las causas anteriores git log
a caminar todas las referencias, pero parar en (excluya) referencias remotas (por ejemplo, origin/master
) y etiquetas . Git no distingue entre etiquetas locales y remotas, por lo que lo anterior supone que todas las etiquetas son remotas (esto no siempre es cierto, por lo que es posible que desee omitir el argumento --tags
a veces).
Yo personalmente uso los siguientes alias para mostrar compromete unpushed:
# unpushed: graph of everything excluding pushed/tag commits
# with boundary commits (see below for 'git g' alias)
git config alias.unpushed '!git g --not --remotes --tags'
# go: _G_raph of _O_utgoing commits with boundary commits
# (see below for 'git gb' alias)
git config alias.go '!git gb @{u}..'
# g: _G_raph of everything with boundary commits
git config alias.g '!git gb --all'
# gb: _G_raph of current _B_ranch (or arguments) with boundary commits
git config alias.gb '!git gbnb --boundary'
# gbnb: _G_raph of current _B_ranch (or arguments) with _N_o _B_oundary commits
git config alias.gbnb 'log --graph --date-order --pretty=tformat:"%C(yellow)%h%Creset %C(magenta)%aE %ai%Creset %C(green bold)%d%Creset%n %s"'
Para repositorios simples que utilizan los git g
alias como mi principal método de exploración de las confirmaciones. Para repositorios complejos (docenas de ramas), generalmente uso git gb
para mostrar ramas específicas o rangos de confirmaciones. Cuando quiero ver cómo git push
cambiará la referencia remota (mi push.default
está configurado en upstream
), uso git go
. Cuando deseo ver si hay algo en algún lugar de mi repositorio local que no haya presionado (por ejemplo, para ver si perderé trabajo si elimino el clon), uso git unpushed
.
Parece que funciona bien para mí en una sucursal ... ¿Qué no funciona para usted? –
Funciona, pero muestra cómo la rama se ha separado del maestro, no cómo mi copia local ha divergido de la corriente ascendente, que es lo que quiero. – slacy