По умолчанию git diff
все +-
строки выводятся в стандартный вывод, однако у меня есть (девианская) машина (которую я подключаю через ssh), которая git diff
приводит меня к редактору (который я не знаю), и мне нужно нажать, qчтобы продолжить.
У меня есть чекер git config, он выглядит так:
$ 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
Есть место, где я скучаю? Может быть, неизвестный инструмент - это запасной вариант или что-то в этом роде, потому что на моей машине что-то не хватает? Любая помощь приветствуется. Спасибо.
Ответы:
По умолчанию Git отправляет свой вывод diff (и, как правило, любой вывод, который может занимать больше экрана) на системный пейджер , который представляет собой утилиту, которая печатает только один экран вывода за раз. Если вы хотите отключить пейджер при запуске команды, перейдите
--no-pager
к Git:Это можно запустить для любой команды Git.
Если вы хотите отключить его по умолчанию только для diff , вы можете установить для него пейджер
cat
, запустив:Если вы хотите отключить его по умолчанию для всех команд , вы можете установить для пейджера Git значение
cat
, запустив:источник
git config --global core.pager cat
сделал это!. Спасибо :)git
( не подкоманду)?git branch
, напримерgit config pager.branch false
Следующее
core.pager
значение используетless
, который выводится на стандартный вывод, а также имеет функцию пейджера (если требуется), позволяя прокрутку вверх и вниз (в отличие отcat
):Он немедленно завершается, если разница помещается на первом экране (
-F
), выводит необработанные управляющие символы (-R
), обрезает длинные строки, а не обертывает (-S
), и не использует termcap init / deinit strings (-X
).источник
Вы также можете просто использовать
cat
для любойgit
команды, если вам не нужны цвета.Итак,
git diff | cat
для вашего случая.Изменить: как указано в комментариях, если вы заботитесь об использовании цветов:
git diff --color | cat
источник
git diff --color | cat