Eu gosto de ter o pager ativado, por git logexemplo, mas não git diffporque 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 logexemplo, mas não git diffporque 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.diffvariá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 --globalse 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.