tag - qué tipos de etiquetas existen en git
El comando de rama de Git se comporta como ''menos'' (8)
El comando de rama de Git se comporta como ''menos''
Debido a que git por defecto abre la salida en el buscapersonas (al menos en ubuntu) La respuesta aceptada reemplazará por completo al buscapersonas, lo que puede no gustarle si su salida es muy larga.
Yo recomendaría reemplazar el localizador con
less
para que no "desplace" las salidas a menos de la altura del terminal.
git config --global --replace-all core.pager "less -F -X"
Cuando uso el comando
git branch
para enumerar todas las ramas, veo el resultado de
git branch | less
git branch | less
Se supone que el comando
git branch
muestra una lista de ramas, como
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
ve así:
[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
Como se mencionó anteriormente, este fue un cambio de comportamiento predeterminado introducido en Git 2.16 .
Puede desactivar la salida paginada para
git branch
de forma predeterminada con la
configuración de configuración
pager.branch
:
git config --global pager.branch false
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á establecida, 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 :
-F o --quit-if-one-screen
Hace que salga menos automáticamente si se puede mostrar todo el archivo en la primera pantalla.-R o --CRAW-CONTROL-CHARS
[...] Las secuencias de escape de "color" ANSI se emiten en forma "en bruto".-X o --no-init
Inhabilita el envío de las cadenas de inicialización y desinicialización de termcap al terminal. Esto a veces es deseable si la cadena de desinicialización hace algo innecesario, como borrar la pantalla.
Si obtiene el comportamiento que describe, lo más probable es que tenga
$LESS
configurado en otra cosa, y desarmarlo eliminaría el problema y mantendría el comportamiento de "buscapersonas" para una salida larga.
Alternativamente, puede activar el comportamiento mientras mantiene
$LESS
tal como está agregando esto a su archivo
.gitconfig
:
[core]
pager = less -FRX
Si realmente no le gusta el buscapersonas, puede desactivarlo globalmente o por orden (ver otras respuestas).
Este comportamiento imbécil fue cada vez más molesto para mí también.
Obtuve mi lista de etiquetas en
less
cuando solo quería enumerar etiquetas, por ejemplo.
También se puede controlar este comportamiento cambiando el
Git PAGER
predeterminado a
cat
lugar de
less
.
Prefiero desplazarme en iTerm que en el editor.
Me gusta usar el editor cuando quiero.
Asi que:
git config --global core.pager cat
Espero que ayude.
Haz lo siguiente:
[alias]
br = !git --no-pager branch
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 salidas al terminal.
Puede anular este valor predeterminado utilizando la
--no-pager
git --no-pager branch
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
en lugar de
git branch
).
Para aquellos que quieran actualizar su
~/.gitconfig
para solucionar esto, se vería así:
[pager]
branch = false
https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables
GIT_PAGER controla el programa utilizado para mostrar la salida de varias páginas en la línea de comando. Si esto no está configurado, PAGER se utilizará como reserva.
Para resolver su problema, puede desarmar PAGER y GIT_PAGER en su shell.