¿Cómo deshabilitar el localizador git pero solo para ciertos comandos?

14

Me gusta tener el buscapersonas habilitado, por git logejemplo, pero no git diffporque tenga mi propia herramienta visual diff que aparece, y odio tener que presionar 'q' en la línea de comando después de que termine el diff. ¿Hay alguna forma de hacer esto?

CaptSaltyJack
fuente
Posible lo mismo en SO: stackoverflow.com/questions/2183900/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Respuestas:

23

Puede establecer la pager.diffvariable de configuración para deshabilitar el buscapersonas para subcomandos específicos. Ver pager.<cmd>en git-config (1) .

git config --global pager.diff false

Deje de lado --globalsi solo desea realizar este cambio de configuración para el repositorio actual.

Chris Johnsen
fuente
3
Para desactivar una invocación especial: git -c pager.diff=false log ....
mjs
0

No es una gran solución, pero podría tener un git wrapper que determina qué comando está ejecutando y canaliza la salida a través de cat para eliminar la detección del terminal.

#!/bin/sh
case "$1" in)
  diff) git "$@" | cat;;
  *) exec git "$@";;
esac

Por supuesto, mi programa de ejemplo es completamente mental. Debería omitir las opciones en lugar de codificar "$ 1" en el programa.

Seth Robertson
fuente