tipos tag qué existen etiquetas eliminar crear git terminal zsh git-branch oh-my-zsh

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ñ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