Когда я использую git branch
команду для вывода списка всех ветвей, я вижу вывод git branch | less
.
Команда git branch
должна показывать список ветвей, как это ls
делается для файлов.
Это вывод, который я получаю:
Как мне получить поведение по умолчанию git branch
? Что вызывает постраничный вывод?
Я использую ZSH с oh_my_zsh
(ничего для Git там), и мой .gitconfig
выглядит так:
[user]
email = myemail@mail.com
name = Dennis Haegler
[push]
default = simple
[merge]
tool = vimdiff
[core]
editor = nvim
excludesfile = /Users/dennish/.gitignore_global
[color]
ui = true
[alias]
br = branch
ci = commit -v
cam = commit -am
co = checkout
df = diff
st = status
sa = stash
mt = mergetool
cp = cherry-pick
pl = pull --rebase
[difftool "sourcetree"]
cmd = opendiff \"$LOCAL\" \"$REMOTE\"
[mergetool "sourcetree"]
cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh
\"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
trustExitCode = true
git branch
с чем-то еще. Используя обнаружение канала , Git выведет список веток в стандартный вывод командgit branch > branches.txt
илиgit branch | wc -l
.ESC/q
после простойgit branch
проверки.less
, вы можете добавить--no-init --quit-if-one-screen
в своюLESS
переменную окружения, что приведетless
к тому , что вы просто будете писать в стандартный вывод, если текст можно просматривать без прокрутки. Смотритеman less
для более подробной информации.[pager] branch = false
(в две строки).Как указывалось в других ответах, Git по умолчанию передает себя в пейджер (
less
по умолчанию) для большинства команд.Важным моментом, однако, является то, что, когда переменная среды LESS не установлена, Git устанавливает ее в FRX , и следствием этого является то, что поведение, видимое пользователю, такое же, как если бы пейджер не использовался, когда вывод команды короткий (т.е. если у вас только несколько веток). См человека меньше :
Если вы получите описанное вами поведение, вы, скорее всего,
$LESS
установили что-то другое, и его сброс (unset LESS
) избавит от проблемы, сохраняя при этом поведение «пейджер» для длительного вывода. Кроме того, вы можете активировать поведение, сохраняя его$LESS
как есть, добавив его в свой.gitconfig
файл:Если вам действительно не нравится пейджер, вы можете деактивировать его глобально или для каждой команды (см. Другие ответы).
источник
Не спорьте с семантикой, но поведение, которое вы получаете, используется по умолчанию. Вот почему вы получаете это, когда вы не просите что-то другое. По умолчанию
branch
(и многие другие команды Git) используют пейджер при отправке вывода на терминал.Вы можете изменить это значение по умолчанию, используя
--no-pager
опцию:Или, если вы перенаправляете вывод в файл, Git должен обнаружить, что он не пишет в терминал, и поэтому не должен использовать пейджер в любом случае. (С другой стороны, это предлагает сценарий использования сценариев, и в этом случае вам следует рассмотреть возможность использования сантехнической команды, как
git for-each-ref
в предпочтенииgit branch
.)источник
git --no-pager branch
работает. Но как это установить? ТолькоPAGER
переменная окружения установлена вless
. Это не поведение по умолчанию. У всех моих колледжей есть вывод в виде списка, распечатанного на терминал.Такое поведение Git меня все больше и больше раздражало. Я получил свой список тегов,
less
когда просто хочу перечислить теги, например.Можно также управлять этим поведением, изменив Git PAGER по умолчанию
cat
вместоless
. Я бы лучше прокрутил в iTerm, чем в редакторе. Мне нравится использовать редактор, когда я хочу.Так:
источник
git log
это раздражает. Я просто скучаю по исходному поведению, но у меня не было времени, чтобы улучшить мой ежедневный рабочий процесс в этой перспективе.git log
...Для тех, кто хочет обновить их,
~/.gitconfig
чтобы исправить это, это будет выглядеть так:источник
git config --list --show-origin
отладить, какие настройки установлены / не установлены для вас / вашей системы и откуда ( stackoverflow.com/q/12254076/1590950 ).Потому что Git по умолчанию открывает вывод в пейджере (по крайней мере, в Ubuntu). Общепринятый ответ будет полностью заменить пейджер, который вы не можете , как если ваш выход очень долго.
Я бы порекомендовал заменить пейджер
less
, чтобы он не «прокручивал» выходные данные меньше, чем высота терминала.источник
Сделайте следующее:
источник
Принятый ответ кажется неправильным. Есть две проблемы:
git branch
не всегда использует пейджер, что нежелательно при большом количестве выходных данных.Настоящая причина в том, что bash и zsh имеют разные определения по умолчанию для LESS: bash ничего не определяет, а zsh определяет это для
-R
. Когда я делаюunset LESS
в Zsh, все приходит в норму ....-R
Поведение может все еще быть желательным. В этом случае вы можете добавить следующую инструкцию в ваш .zshrc, чтобы все работало:-F
'вызывает меньше, чтобы автоматически завершиться, если весь файл может быть отображен на первом экране'. Однако-X
необходимо указывать одновременно, в противном случае выходные данные не будут отображаться, если выходных данных меньше, чем на экране.источник
https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables
Чтобы решить вашу проблему, вы можете удалить PAGER и GIT_PAGER в своей оболочке.
источник
PAGER
(GIT_PAGER
было неустановлено) проблема все еще там. Есть ли место, где я должен проверить этот env vars?PAGER= git branch
(с одним пробелом после и ни один перед знаком равенства в точности как написано). Не знаю, является ли это лучше , чем , например,git branch | cat
.У меня была такая же проблема,
git status
и яgit config --global pager.status false
тоже ее решаю.источник