Eu gosto de ter o pager ativado, por git log
exemplo, mas não git diff
porque eu tenha minha própria ferramenta visual diff, e odeio ter que pressionar 'q' na linha de comando depois que a diff terminar. Existe uma maneira de fazer isso?
Eu gosto de ter o pager ativado, por git log
exemplo, mas não git diff
porque eu tenha minha própria ferramenta visual diff, e odeio ter que pressionar 'q' na linha de comando depois que a diff terminar. Existe uma maneira de fazer isso?
Respostas:
Você pode definir a pager.diff
variável de configuração para desativar o pager para subcomandos específicos. Veja pager.<cmd>
em git-config (1) .
git config --global pager.diff false
Deixe de fora --global
se você deseja apenas fazer essa alteração na configuração do repositório atual.
git -c pager.diff=false log ...
.
Não é uma ótima solução, mas você pode ter um wrapper git que determina qual comando você está executando e canaliza a saída através do gato para eliminar a detecção do terminal.
#!/bin/sh
case "$1" in)
diff) git "$@" | cat;;
*) exec git "$@";;
esac
É claro que meu exemplo de programa é totalmente irracional. Você precisaria pular as opções em vez de codificar "$ 1" no programa.