¿Hay un interruptor de línea de comando para pasar git diffy otros comandos que usan el lessbuscapersonas por defecto?
Sé que puedo canalizarlo a cat, pero eso elimina todo el resaltado de sintaxis.
Sé que puedo configurar el localizador en el .gitconfig global para cat by GITPAGER=cat(o algo así); pero quiero tener buscapersonas a veces (dependiendo del tamaño de la diferencia).
Pero, preferiría un cambio de línea de comando si hay uno; y no puedo encontrar uno, revisando las páginas del manual.

core.pager 'less -+F -+X'sería una forma más reciente de eliminar esas opciones. Vea mi respuesta a continuación .lesscon git (varía según lalessversión): unix.stackexchange.com/questions/107315/…Respuestas:
--no-pagera Git le dirá que no use un buscapersonas. Pasando la opción-Fa,lessle indicará que no busque si la salida cabe en una sola pantalla.Uso:
Otras opciones de los comentarios incluyen:
fuente
core.pagervariable de configuración git.-Ea suslessopciones para que se-Fpueda usar.--no-pagerun alias, debe prefijar el comando con él y, para evitar un error, debe crear un alias como este:git config alias.foo '!git --no-pager foo'. Algo confuso. Simplemente aliasing'--no-pager foo'no funcionará.Como se mencionó anteriormente, pasar la
-Fopción alesshace que se cierre si el contenido es inferior a una pantalla. Sin embargo, después de hacerlo, la pantalla se reinicia y terminas sin ver el contenido.La
-Xopción elimina ese comportamiento. Por lo tanto, uso lo siguiente para habilitar la paginación condicional en función de la cantidad de contenido:fuente
git config --global --add core.pager "less -F -X"en git1.8.0.2, el anterior no funcionó.export LESS="-RFX"a su.bashrco.zshrc-Xhace. No lo uses si no te gusta eso. Me gusta porque de esta manera puedo referirme a cosas como SHA git mirando el resultado de comandos git anteriores en mi historial sin tener que volver a escribir el comando. Cada uno a lo suyo.Utilizar
para deshacerse de un buscapersonas para todos los comandos para todos los repositorios.
También puede deshabilitar la paginación para subcomandos Git individuales mediante el uso de la
pager.<cmd>configuración en lugar decore.pager, y puede cambiar su configuración por repositorio de Git (omitir--global).Ver
man git-configy buscarpager.<cmd>detalles.fuente
Los cambios recientes en la documentación mencionan una forma diferente de eliminar una opción predeterminada para
less(ser "opciones predeterminadas"FRSX).Para esta pregunta, esto sería (git 1.8+)
Por ejemplo, Dirk Bester sugiere en los comentarios :
Wilson F menciona en los comentarios y en su pregunta que:
Esas modificaciones ya eran visibles en git 1.8.x, como se ilustra en " Usar siempre el localizador para
git diff" (ver los comentarios). Pero la documentación se volvió a redactar ( para git 1.8.5 o 1.9, Q4 2013 ).Ver commit 97d01f2a para conocer el motivo detrás de la nueva redacción de documentación:
config: reescribir
core.pagerdocumentaciónNota: commit b327583 ( Matthieu Moy
moy, abril de 2014, para git 2.0.x / 2.1, Q3 2014) eliminará la S por defecto:buscapersonas: elimina 'S' de $ LESS de forma predeterminada
La documentación leerá:
fuente
También puede deshabilitar / habilitar buscapersonas para salidas específicas en la configuración global:
O para configurar la opción core.pager, solo proporcione una cadena vacía:
Esto es mejor en mi opinión que configurarlo
catcomo usted dice.fuente
git version 2.5.4 (Apple Git-61)git diffal tiempo que deja de trabajar para otros comandoscode "$($env:UserProfile)\.gitconfig"y agregar manualmentepager =en la[core]configuración. La respuesta funcionó para mi sesión actual de PowerShell, pero no parecía guardar la configuración en ningún lado, por lo que fue efectiva en el próximo lanzamiento.Con respecto al color deshabilitado al canalizar:
Use
--colorpara evitar que el color esté deshabilitado.git diff --color | less -RO configúrelo forzado (por ejemplo, en gitconfig):
git diff | less -RPara herramientas que no sean de color, use:
git diff --no-color | some-primitive-toolLa exportación de la variable de entorno
LESS=-R(por ejemplo, en .bashrc) activa el soporte de color de forma predeterminada en "menos":git diff | lessfuente
LESSvariable de entornoFRSXcuando llame al localizador, si no está configurado.Esto funcionó para mí con Git versión 2.1.4 en Linux:
Esto hace que Git use en
catlugar deless.catsimplemente volca la salidadiffa la pantalla sin paginación.fuente
Puede agregar un alias a diff con su propio localizador con pager.alias, así:
Esto mantendrá el color y usará 'cat' como localizador cuando se invoque en 'git dc'.
Además, cosas que no debes hacer:
--no-pageren tu alias. Git (1.8.5.2, Apple Git-48) se quejará de que está intentando modificar el entorno.!sho!git. Esto omitirá el error de entorno anterior, pero restablecerá su directorio de trabajo (a los efectos de este comando) al directorio Git de nivel superior, por lo que cualquier referencia a un archivo local no funcionará si ya está en un subdirectorio de tu repositoriofuente
git logpero nogit log --oneline. Usepager.log = less -FXR +/^commit.*, mientras que la--onelineopción de mayúsculas y minúsculas conalias.l1 = log --onelineypager.l1 = less -FXR.Tengo este trozo en mi
.gitconfigy parece funcionar bien (deshabilitado tanto para diff como para show):fuente
Me gusta deshabilitar la paginación de vez en cuando, cuando sé que la salida no es muy larga. Para esto, encontré un buen truco usando alias Git:
O agregue lo siguiente a la
[alias]sección de ~ / .gitconfig:Esto significa que puede usar el prefijo
npara desactivar la paginación para cualquier comando Git, es decir:fuente
Para un script rápido y sucio que escribí, lo hice de esta manera:
fuente
$GIT_PAGERestá configurado.git --no-pagerhace lo mismo pero de manera más confiable.Como dice en man git , puedes usar
--no-pageren cualquier comando.Lo uso en:
Luego use un alias para evitar usar (y recordar) comandos largos.
fuente
Para Windows es:
Esto desactivará la paginación de todo
git, incluido el súper molestogit branch.fuente
Si usa oh-my-zsh, en el
~/.oh-my-zsh/lib/misc.zsharchivo, comente esta línea:fuente
unset LESSal final del .zshrc.Por defecto, git uses utiliza menos como buscapersonas. Normalmente prefiero más, ya que imprimirá la primera página y luego le permitirá desplazarse por el contenido.
Además, el contenido permanecerá en la consola cuando termine. Esto suele ser conveniente, ya que a menudo desea hacer algo con el contenido después de la búsqueda (por ejemplo, enviar un correo electrónico al encargado y decirle que introdujo un error en su última confirmación).
Si luego desea canalizar el contenido, sería inconveniente desplazarse para imprimir todo. Lo bueno con más es que podrá combinarlo con la tubería y lo canalizará a través de todo, por ejemplo.
Básicamente es todo lo que necesitaría, a menos que no desee que el contenido permanezca en la consola cuando termine. Para usar más en su lugar, haga lo siguiente.
fuente
O
--no-pager.Por cierto: para preservar el color con el gato
fuente
Simplemente siga las instrucciones a continuación.
vi ~/.gitconfigsu terminal.LESS="-F -X $LESS"Línea de pasta .:wqy entra.fuente