Por padrão git diff
imprime todas as +-
linhas para o stdout, entretanto eu tenho uma máquina (devian) (que eu conecto por meio de ssh) onde git diff
me leva a um editor (que não sei qual é) e preciso pressionar qpara continuar.
Eu verifiquei a configuração do git e parece:
$ git config --list
user.name=XXX
user.email=XXX@XXX
color.ui=false
difftool.prompt=false
mergetool.prompt=false
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=XXX
branch.master.remote=origin
branch.master.merge=refs/heads/master
$ git config --global --list
user.name=XXX
user.email=XXX@XXX
color.ui=false
difftool.prompt=false
mergetool.prompt=false
$ git config --system --list
'/etc/gitconfig': No such file or directory
Existe um lugar que estou perdendo? Talvez a ferramenta desconhecida seja um fallback ou algo assim porque está faltando alguma coisa em minha máquina? Qualquer ajuda é apreciada. Obrigado.
Respostas:
Por padrão, o Git envia sua saída diff (e geralmente qualquer saída que possa ser mais do que uma tela cheia) para o pager do sistema , que é um utilitário que imprime apenas uma tela cheia de saída por vez. Se você deseja desativar o pager ao executar um comando, passe
--no-pager
para o Git:Isso pode ser executado para qualquer comando Git.
Se você deseja desabilitá-lo por padrão apenas para diff , você pode definir o pager diff
cat
executando:Se quiser desativá-lo por padrão para todos os comandos , você pode definir o pager Git
cat
executando:fonte
git config --global core.pager cat
fez isso !. Obrigado :)git
( não para o subcomando)?git branch
, por exemplogit config pager.branch false
O
core.pager
valor a seguir usaless
, que imprime em stdout e também tem funcionalidade de pager (se necessário), permitindo rolar para cima e para baixo (ao contráriocat
):Ele fecha imediatamente se o diff couber na primeira tela (
-F
), produz caracteres de controle brutos (-R
), corta linhas longas em vez de envolver (-S
) e não usa strings termcap init / deinit (-X
).fonte
Você também pode simplesmente usar
cat
para qualquergit
comando se não se importar com as cores.Então,
git diff | cat
para o seu caso.Editar: conforme apontado nos comentários, se você se preocupa com o uso de cores:
git diff --color | cat
fonte
git diff --color | cat
(: