Cuando uso el git branch
comando para enumerar todas las ramas, veo el resultado de git branch | less
.
Se git branch
supone que el comando muestra una lista de ramas, como lo ls
hace para los archivos.
Este es el resultado que obtengo:
¿Cómo obtengo el comportamiento predeterminado de git branch
? ¿Qué causa la salida paginada?
Estoy usando ZSH con oh_my_zsh
(nada para Git allí), y mi .gitconfig
aspecto es el siguiente:
[user]
email = [email protected]
name = Dennis Haegler
[push]
default = simple
[merge]
tool = vimdiff
[core]
editor = nvim
excludesfile = /Users/dennish/.gitignore_global
[color]
ui = true
[alias]
br = branch
ci = commit -v
cam = commit -am
co = checkout
df = diff
st = status
sa = stash
mt = mergetool
cp = cherry-pick
pl = pull --rebase
[difftool "sourcetree"]
cmd = opendiff \"$LOCAL\" \"$REMOTE\"
[mergetool "sourcetree"]
cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh
\"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
trustExitCode = true
git branch
con otra cosa. Mediante la detección de tuberías , Git generará la lista de ramificaciones para stdout dentro de los comandosgit branch > branches.txt
ogit branch | wc -l
.ESC/q
después de un simplegit branch
cheque.less
, puede agregar--no-init --quit-if-one-screen
a suLESS
variable de entorno, lo que haráless
que simplemente escriba en stdout si el texto se puede ver sin desplazarse. Verman less
para más detalles.[pager] branch = false
(en dos líneas).Como señalaron otras respuestas, Git se conecta de forma predeterminada a un buscapersonas (
less
por defecto) para la mayoría de los comandos.Sin embargo, un punto importante es que cuando la variable de entorno LESS no está configurada, Git la establece en FRX , y la consecuencia es que el comportamiento visible del usuario es el mismo que si el localizador no se usara cuando la salida del comando es corta (es decir, si solo tienes pocas ramas). Ver hombre menos :
Si obtiene el comportamiento que describe, lo más probable es que haya
$LESS
establecido algo más, y desarmarlo (unset LESS
) eliminaría el problema y mantendría el comportamiento de "buscapersonas" para una salida larga. Alternativamente, puede activar el comportamiento mientras se mantiene$LESS
como está agregando esto a su.gitconfig
archivo:Si realmente no le gusta el buscapersonas, puede desactivarlo globalmente o por orden (ver otras respuestas).
fuente
No es para discutir la semántica, pero el comportamiento que está obteniendo es el predeterminado. Es por eso que lo obtienes cuando no pides algo diferente. Por defecto,
branch
(y muchos otros comandos Git) usan un buscapersonas cuando envían la salida al terminal.Puede anular este valor predeterminado utilizando la
--no-pager
opción:O si redirige la salida a un archivo, Git debería detectar que no está escribiendo en un terminal y, por lo tanto, no debería usar un localizador de todos modos. (Por otro lado, eso sugiere un caso de uso de secuencias de comandos, en cuyo caso debería considerar usar un comando de plomería como
git for-each-ref
preferenciagit branch
).fuente
git --no-pager branch
trabajos. Pero, ¿cómo se establece esto? Solo laPAGER
variable de entorno se establece enless
. Este no es el comportamiento predeterminado. Todos mis colegios tienen una salida como una lista impresa en la terminal.Este comportamiento de Git fue cada vez más molesto para mí también. Obtuve mi lista de etiquetas
less
cuando solo quería listar etiquetas, por ejemplo.Uno puede controlar este comportamiento también cambiando el Git PAGER predeterminado a en
cat
lugar deless
. Prefiero desplazarme en iTerm que en un editor. Me gusta usar el editor cuando quiero.Entonces:
fuente
git log
es molesto. Simplemente extraño el comportamiento original, pero no tuve tiempo para mejorar mi flujo de trabajo diario en esta perspectiva.git log
...Para aquellos que quieran actualizar su
~/.gitconfig
para solucionar esto, se vería así:fuente
git config --list --show-origin
depurar qué configuraciones están / no están establecidas para usted / su sistema y desde dónde ( stackoverflow.com/q/12254076/1590950 ).Porque Git por defecto abre la salida en buscapersonas (al menos en Ubuntu). La respuesta aceptada reemplazará por completo el buscapersonas, lo que puede no gustarle si su salida es muy larga.
Recomendaría reemplazar el localizador por
less
, para que no "desplace" las salidas a menos de la altura del terminal.fuente
Haz lo siguiente:
fuente
La respuesta aceptada parece incorrecta. Hay dos problemas:
git branch
no se use siempre un buscapersonas, lo que no será deseable cuando haya mucha salida.La verdadera razón es que bash y zsh tienen definiciones predeterminadas diferentes sobre MENOS: bash no define nada, mientras que zsh lo define
-R
. Cuando lo hagounset LESS
en zsh, todo vuelve a la normalidad ...El
-R
comportamiento aún puede ser deseado. En ese caso, puede agregar las siguientes instrucciones a su .zshrc para que todo funcione:-F
'hace que menos salga automáticamente si se puede mostrar todo el archivo en la primera pantalla'. Sin embargo,-X
debe especificarse simultáneamente, de lo contrario, no se mostrará ninguna salida cuando haya menos de una pantalla llena de salida.fuente
https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables
Para resolver su problema, puede desarmar PAGER y GIT_PAGER en su shell.
fuente
PAGER
(GIT_PAGER
estaba desarmado) sigue ahí. ¿Hay alguna ubicación en la que deba verificar este entorno?PAGER= git branch
(con un espacio después y ninguno antes del signo igual exactamente como está escrito). Ni idea, si es mejor que cualquiera, por ejemplo,git branch | cat
.He tenido el mismo problema
git status
y logit config --global pager.status false
resuelve también.fuente