Есть ли переключатель командной строки для передачи git diff
и другие команды, которые используютless
пейджер по умолчанию?
Я знаю, что могу передать это коту, но это удаляет всю подсветку синтаксиса.
Я знаю, что могу установить пейджер в глобальном .gitconfig на cat GITPAGER=cat
(или что-то подобное); но я хочу иногда иметь пейджер (в зависимости от размера различий).
Но я бы предпочел переключатель командной строки, если он есть; и я не могу найти его, просматривая страницы руководства.
core.pager 'less -+F -+X'
будет более поздний способ удалить эти параметры. Смотрите мой ответ ниже .less
с мерзавцем (она варьируется в зависимости отless
версии): unix.stackexchange.com/questions/107315/...Ответы:
--no-pager
Git скажет это не использовать пейджер. Передача параметра-F
вless
будет сказать ему , чтобы не страница , если выходные умещается в одном экране.Применение:
Другие варианты из комментариев включают в себя:
источник
core.pager
переменную git config.-E
к своимless
опциям, чтобы сделать его-F
пригодным для использования.--no-pager
в качестве псевдонима, то есть префикс команды с ним, и , чтобы избежать ошибок, вы должны сделать псевдоним , как это:git config alias.foo '!git --no-pager foo'
. Несколько сбивает с толку. Просто псевдоним, чтобы'--no-pager foo'
не сработало.Как упоминалось в предыдущем ответе, передавая
-F
опциюless
вызывает его прекращение, если содержимое меньше одного экрана. Однако после этого экран сбрасывается, и в итоге вы не видите его содержимое.-X
Вариант покончил с этим поведением. Итак, я использую следующее для включения условного подкачки на основе объема контента:источник
git config --global --add core.pager "less -F -X"
в git1.8.0.2
, выше не работал.export LESS="-RFX"
вашего.bashrc
или.zshrc
-X
. Не используйте его, если вам это не нравится. Мне это нравится, потому что таким образом я могу ссылаться на такие вещи, как git SHA, просматривая результаты предыдущих команд git в моей истории, без необходимости повторного ввода команды. Каждому свое.использование
избавиться от пейджера для всех команд для всех репозиториев.
Вы также можете отключить подкачку для отдельных подкоманд Git с помощью
pager.<cmd>
параметра вместоcore.pager
, и вы можете изменить настройки для каждого Git-репозитория (не указывать--global
).Смотрите
man git-config
и ищитеpager.<cmd>
для деталей.источник
В последних изменениях в документации упоминается другой способ удаления опции по умолчанию для
less
(«опции по умолчанию»FRSX
).По этому вопросу это будет (git 1.8+)
Например, Дирк Бестер предлагает в комментариях :
Уилсон Ф. упоминает в комментариях и в своем вопросе, что:
Эти изменения были уже видны в git 1.8.x, как показано в « Всегда использовать пейджер для
git diff
» (см. Комментарии). Но документация была переписана ( для git 1.8.5 или 1.9, четвертый квартал 2013 года ).Смотрите коммит 97d01f2a по причине новой редакции документации:
config: переписать
core.pager
документациюПримечание: коммит b327583 ( Matthieu Moy
moy
, апрель 2014 г., для git 2.0.x / 2.1, Q3 2014) по умолчанию удалит S:пейджер: по умолчанию убрать 'S' из $ LESS
Документация будет читать:
источник
Вы также можете отключить / включить пейджеры для определенных выходов в глобальной конфигурации:
Или, чтобы установить параметр core.pager, просто предоставьте пустую строку:
На мой взгляд, это лучше, чем установить,
cat
как вы говорите.источник
git version 2.5.4 (Apple Git-61)
git diff
время, оставляя его работающим для других командcode "$($env:UserProfile)\.gitconfig"
и добавлятьpager =
в[core]
настройках. Ответ сработал для моего текущего сеанса PowerShell, но, похоже, нигде не сохранил настройки, поэтому он был эффективен при следующем запуске.Относительно отключенного цвета при обвязке:
Используйте,
--color
чтобы избежать того, что окраска отключена.git diff --color | less -R
Или настройте его принудительно (например, в .gitconfig):
git diff | less -R
Для нецветных инструментов используйте:
git diff --no-color | some-primitive-tool
Экспорт переменной окружения
LESS=-R
(например, .bashrc) включает поддержку цвета по умолчанию в "less":git diff | less
источник
LESS
переменную окруженияFRSX
при вызове пейджера, если он не установлен.Это работало для меня с Git версии 2.1.4 в Linux:
Это делает использование Git
cat
вместоless
.cat
просто выводит выводdiff
на экран без подкачки.источник
Вы можете добавить псевдоним diff для своего собственного пейджера с помощью pager.alias, например:
Это позволит сохранить цвет и использовать 'cat' как пейджер при вызове в 'git dc'.
Кроме того, вещи не делать:
--no-pager
в своем псевдониме. Git (1.8.5.2, Apple Git-48) будет жаловаться на то, что вы пытаетесь изменить среду.!sh
или!git
. Это обойдёт ошибку среды, описанную выше, но сбросит ваш рабочий каталог (для целей этой команды) в каталог Git верхнего уровня, поэтому любые ссылки на локальный файл не будут работать, если вы уже находитесь в подкаталоге ваш репозиторий.источник
git log
но нетgit log --oneline
. Используйтеpager.log = less -FXR +/^commit.*
, в то время как специальный корпус с--oneline
опциейalias.l1 = log --oneline
иpager.l1 = less -FXR
.У меня есть этот кусок в моем,
.gitconfig
и, кажется, работает нормально (отключено для diff и show):источник
Я люблю отключать пейджинг время от времени, когда знаю, что вывод не очень длинный. Для этого я нашел хитрый трюк с использованием псевдонимов Git:
Или добавьте следующее в
[alias]
раздел ~ / .gitconfig:Это означает, что вы можете использовать префикс
n
для отключения подкачки для любой команды Git, то есть:источник
Для быстрого и грязного сценария, который я написал, я сделал это следующим образом:
источник
$GIT_PAGER
установлено.git --no-pager
делает то же самое, но более надежно.Как говорится в man git , вы можете использовать
--no-pager
любую команду.Я использую это на:
Затем используйте псевдоним, чтобы избежать использования (и запоминания) длинных команд.
источник
Для Windows это:
Это отключит пейджинг для всего, в
git
том числе супер раздражающегоgit branch
.источник
Если вы используете oh-my-zsh в
~/.oh-my-zsh/lib/misc.zsh
файле, прокомментируйте эту строку:источник
unset LESS
в конце .zshrc.По умолчанию Git использует меньше как пейджер. Я обычно предпочитаю больше, так как он напечатает первую страницу, а затем позволит вам прокрутить содержимое.
Далее контент останется в консоли, когда закончите. Это обычно удобно, так как вы часто хотите что-то сделать с контентом после поиска (например, напишите коммитеру и напишите ему, что он внес ошибку в свой последний коммит).
Если вы затем хотите передать содержимое, было бы неудобно прокручивать, чтобы напечатать все. Хорошая вещь с большим количеством - вы сможете объединить его с конвейером, и он будет проходить через все, например.
По сути, больше - это все, что вам нужно, если только вы не хотите, чтобы контент оставался в консоли после завершения. Чтобы использовать больше, сделайте, как показано ниже.
источник
Или
--no-pager
.Кстати: чтобы сохранить цвет с кошкой
источник
Просто следуйте инструкциям ниже.
vi ~/.gitconfig
свой терминал.LESS="-F -X $LESS"
строку.:wq
и введите.источник