3

git log -{n} , когда -n достаточно мало, не открывается less просто выводит его на экран. Это желательно. git log -1 не должен занимать весь экран.

К сожалению, в bash-оболочке MINGW после того, как я запустил не-git команду, git log ведет себя так, как будто я запустил его в less и нажал q . (другими словами, данные печатаются в нижней части экрана, и я получаю кучу пробелов сверху).

Воображаемое демо (пожалуйста, прости его длину):

>> clear









>> git log -1




commit 123123...
Author: CPfohl
Date: {today}
    {Message}

>> git log -1
commit 123123...
Author: CPfohl
Date: {today}
    {Message}

Это работает независимо от того, какую команду git я выполняю перед git log , если git log -{n} после команды git.

Это ошибка, или есть способ заставить ее вести себя нормально?

2 ответа2

3

Если вы хотите отключить разбиение на страницы для некоторых / всех команд git, вы можете:

  • установить значение конфигурации (pager.<cmd> или core.pager для всех команд) для cat
  • используйте опцию --no-pager

Но, возможно, я не поняла ваш вопрос. Описанное поведение должно быть изменено путем установки соответствующей команды разбивки на страницы (less с некоторыми опциями) в вышеупомянутых опциях конфигурации.

0

Или вы можете также определить псевдоним в вашем файле конфигурации git, который позволяет вам показывать журнал особым образом, если вы вводите следующие команды, например, вы настраиваете .gitconfig для редактирования с помощью Sublime Text 3:

git config --global core.editor "'c:/Program Files/Sublime Text 3/sublime_text.exe'" -w

git config --global alias.showconfig "config --global -e"

Далее вы можете добавить псевдоним в git, чтобы показать вам последние коммиты по всем веткам в репозитории:

Добавьте [alias], если отсутствует в .gitconfig, то:

latest = "!f() { echo "Latest \"${1:-11}\" commits accross all branches:"; git log  --abbrev-commit --date=relative --branches --all --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset%n' -n ${1:-11};  } ; f"

Псевдоним здесь использует функцию оболочки с параметром, установленным в переменную оболочки. Если вы не укажете значение параметра, псевдоним будет использовать 11 в качестве значения по умолчанию (Синтаксис можно легко интерпретировать с -11, но синтаксис $ {1:-11} означает первый параметр в оболочке и установку по умолчанию значение параметра, если оно отсутствует. Немного похоже на значения по умолчанию в C # или параметры по умолчанию в Powershell.

Как видите, псевдоним, который мы даем git, может содержать несколько команд, разделенных точкой с запятой.

Я попробовал это, запустив git latest и git latest 3 на приведенном ниже примере экрана вывода. Вы видите мое редактирование моего git config слева.

С помощью функций оболочки и псевдонимов мы можем сделать намного больше с Git без необходимости печатать так много. Синтаксис shell-функций соответствует правилам BASH и может использоваться также в среде Windows с CMD.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .