Existe uma opção de linha de comando para passar git diff
e outros comandos que usam o less
pager por padrão?
Eu sei que posso canalizá-lo para gato, mas isso remove todo o destaque da sintaxe.
Eu sei que posso definir o pager no .gitconfig global como cat by GITPAGER=cat
(ou algo parecido); mas eu quero ter pager algumas vezes (dependendo do tamanho do diff).
Mas, eu preferiria uma opção de linha de comando, se houver uma; e não consigo encontrar um, percorrendo as páginas de manual.
core.pager 'less -+F -+X'
seria uma maneira mais recente de remover essas opções. Veja minha resposta abaixo .less
com o git (varia de acordo com aless
versão): unix.stackexchange.com/questions/107315/…Respostas:
--no-pager
para o Git dirá para ele não usar um pager. Se você passar a opção,-F
nãoless
será necessário paginar se a saída couber em uma única tela.Uso:
Outras opções dos comentários incluem:
fonte
core.pager
variável de configuração git.-E
às suasless
opções para torná-lo-F
utilizável.--no-pager
em um alias, você tem que prefixar o comando com ele, e para evitar um erro, você tem que fazer um alias como este:git config alias.foo '!git --no-pager foo'
. Um pouco confuso. Aliasing simples para'--no-pager foo'
não funcionará.Como uma resposta anterior mencionada, passar a
-F
opçãoless
para encerrar se o conteúdo for menor que uma tela. No entanto, depois de fazer isso, a tela é redefinida e você não vê o conteúdo.A
-X
opção elimina esse comportamento. Então, eu uso o seguinte para habilitar a paginação condicional com base na quantidade de conteúdo:fonte
git config --global --add core.pager "less -F -X"
no git1.8.0.2
, o acima não funcionou.export LESS="-RFX"
a sua.bashrc
ou.zshrc
-X
isso que acontece. Não use se você não gosta disso. Gosto porque desta maneira posso me referir a coisas como SHAs do git olhando o resultado dos comandos git anteriores no meu histórico sem precisar digitar o comando novamente. Cada um na sua.Usar
livrar-se de um pager para todos os comandos para todos os repositórios.
Você também pode desativar a paginação para subcomandos Git únicos usando a
pager.<cmd>
configuração em vez decore.pager
e pode alterar suas configurações por repositório Git (omitir--global
).Veja
man git-config
e procurepager.<cmd>
por detalhes.fonte
As alterações recentes na documentação mencionam uma maneira diferente de remover uma opção padrão para
less
(sendo "opções padrão"FRSX
).Para esta pergunta, isso seria (git 1.8+)
Por exemplo, Dirk Bester sugere nos comentários :
Wilson F menciona nos comentários e em sua pergunta que:
Essas modificações já estavam visíveis no git 1.8.x, conforme ilustrado em " Sempre use o pager para
git diff
" (consulte os comentários). Mas a documentação acabou de ser reformulada ( para git 1.8.5 ou 1.9, quarto trimestre de 2013 ).Consulte commit 97d01f2a para obter o motivo por trás do novo texto da documentação:
config: reescrever a
core.pager
documentaçãoNota: commit b327583 ( Matthieu Moy
moy
, abril de 2014, para git 2.0.x / 2.1, Q3 2014) removerá o S por padrão:pager: remova 'S' de $ LESS por padrão
A documentação irá ler:
fonte
Você também pode desativar / ativar os pagers para saídas específicas na configuração global:
Ou, para definir a opção core.pager, forneça uma string vazia:
Isso é melhor na minha opinião do que configurá-lo
cat
como você diz.fonte
git version 2.5.4 (Apple Git-61)
git diff
deixando-o trabalhar para outros comandoscode "$($env:UserProfile)\.gitconfig"
e adicionar manualmentepager =
nas[core]
configurações. A resposta funcionou na minha sessão atual do PowerShell, mas não pareceu salvar a configuração em nenhum lugar, pelo que foi eficaz no próximo lançamento.Em relação à cor desativada ao fazer a tubulação:
Use
--color
para evitar que a cor esteja desativada.git diff --color | less -R
Ou configure-o forçado (por exemplo, .gitconfig):
git diff | less -R
Para ferramentas não coloridas, use:
git diff --no-color | some-primitive-tool
A exportação da variável de ambiente
LESS=-R
(por exemplo, .bashrc) ativa o suporte a cores por padrão em "less":git diff | less
fonte
LESS
variável de ambiente paraFRSX
quando chamar o pager, se não estiver definido.Isso funcionou para mim com o Git versão 2.1.4 no Linux:
Isso faz com que o Git use em
cat
vez deless
.cat
apenas despeja a saída dadiff
tela sem paginação.fonte
Você pode adicionar um alias para diferenciar seu próprio pager com pager.alias, da seguinte maneira:
Isso manterá a cor ativada e usará 'cat' como pager quando chamado em 'git dc'.
Além disso, coisas a não fazer:
--no-pager
em seu apelido. O Git (1.8.5.2, Apple Git-48) reclamará que você está tentando modificar o ambiente.!sh
ou!git
. Isso ignorará o erro de ambiente acima, mas redefinirá seu diretório de trabalho (para os propósitos deste comando) para o diretório Git de nível superior, portanto, qualquer referência a um arquivo local não funcionará se você já estiver em um subdiretório de seu repositório.fonte
git log
mas nãogit log --oneline
. Usepager.log = less -FXR +/^commit.*
, enquanto especifica a--oneline
opção comalias.l1 = log --oneline
epager.l1 = less -FXR
.Eu tenho esse pedaço no meu
.gitconfig
e parece funcionar bem (desativado para diff e show):fonte
Eu gosto de desativar a paginação de tempos em tempos, quando sei que a saída não é muito longa. Para isso, achei um truque interessante usando aliases do Git:
Ou adicione o seguinte à
[alias]
seção ~ / .gitconfig:Isso significa que você pode usar o prefixo
n
para desativar a paginação para qualquer comando Git, ou seja:fonte
Para um script rápido e sujo que escrevi, fiz desta maneira:
fonte
$GIT_PAGER
estiver definido.git --no-pager
faz o mesmo, mas com mais confiabilidade.Como diz o man git , você pode usar
--no-pager
qualquer comando.Eu uso em:
Em seguida, use um alias para evitar o uso (e a lembrança) de comandos longos.
fonte
Para Windows é:
Isso desativará a paginação de tudo em
git
, incluindo o que é super irritantegit branch
.fonte
Se você usar o oh-my-zsh, no
~/.oh-my-zsh/lib/misc.zsh
arquivo, comente esta linha:fonte
unset LESS
no final do .zshrc.Por padrão, o git usa menos como pager. Normalmente, prefiro mais, pois ela imprimirá a primeira página e permitirá que você role pelo conteúdo.
Além disso, o conteúdo permanecerá no console quando terminar. Isso geralmente é conveniente, pois você costuma fazer algo com o conteúdo após a pesquisa (por exemplo, envie um e-mail ao commiter e diga a ele que ele introduziu um bug em seu último commit).
Se você deseja canalizar o conteúdo, seria inconveniente rolar para imprimir tudo. A coisa boa com mais é que você será capaz de combiná-lo com o pipeline e ele passará por tudo, por exemplo.
Basicamente, é tudo o que você precisa, a menos que você não queira que o conteúdo permaneça no console quando terminar. Para usar mais, faça o seguinte.
fonte
Or
--no-pager
.BTW: Para preservar a cor com gato
fonte
Basta seguir as instruções abaixo.
vi ~/.gitconfig
seu terminal.LESS="-F -X $LESS"
linha.:wq
e entre.fonte