Вопрос или проблема
По умолчанию на системах unix git отображает справку через man
, что требует загрузки постраничного просмотра, нарушая мой рабочий процесс. Когда я ввожу git branch --help
, я хочу, чтобы он отобразил параметры в кратком виде. Я привык добавлять --help
к команде для получения сводки и использовать man <command>
для просмотра руководства. Мне не нужно руководство, когда я запрашиваю сводку параметров. Как мне указать Git использовать --help
для сводок вместо -h
?
-
Измените обработку параметров в исходном коде git и скомпилируйте его. Вам нужно будет повторять это каждый раз, когда вы обновляете git.
-
Напишите обертку, которая будет вызываться вместо реального бинарного файла (поместив ее первой в
PATH
или переименовав бинарный файлgit
), которая затем заменяет--help
на-h
и вызывает оригинальный бинарный файл.
Если вы ищете простое решение типа «просто установите эту конфигурацию, и она сделает это в моем особом формате, который нужен только мне, а никому другому»: вы, вероятно, его не найдете. Если вы хотите настроить программное обеспечение под свои личные потребности, вам нужно потрудиться.
Пока не появится функция в основном репозитории для этого (я предсказываю, что в конечном итоге help.format
будет иметь usage
или short
), вот супер простой скрипт обертки:
#!/bin/sh -
case "$2" in --help)
set -- "$1" -h
esac
exec /usr/bin/git "$@"
На моих личных системах я устанавливаю этот скрипт как /usr/local/bin/git
, так как мой фактический бинарный файл git
установлен в /usr/bin
, а /usr/local/bin
находится раньше в моем PATH
.
На общих системах, где вы не хотите изменять поведение git
для других, вы можете установить это, например, в ~/bin/git
, при условии, что ~/bin
находится в вашем PATH
.
С этим в наличии git <subcommand> --help
делает то, что нам нужно.
Перейдите прямо к странице man.
Для правильного форматирования требуется меньше.
$ man git-diff | less | head -n 15
GIT-DIFF(1) Git Manual GIT-DIFF(1)
NAME
git-diff - Показать изменения между коммитами, коммитом и рабочим деревом и т. д.
SYNOPSIS
git diff [<options>] [<commit>] [--] [<path>...]
git diff [<options>] --cached [--merge-base] [<commit>] [--] [<path>...]
git diff [<options>] [--merge-base] <commit> [<commit>...] <commit> [--] [<path>...]
git diff [<options>] <commit>...<commit> [--] [<path>...]
git diff [<options>] <blob> <blob>
git diff [<options>] --no-index [--] <path> <path>
DESCRIPTION
Показать изменения между рабочим деревом и индексом или деревом, изменения между индексом и деревом, изменения между двумя деревьями,
Вы также можете модифицировать с помощью какого-то фильтра, чтобы напечатать до DESCRIPTION
вместо использования head
Ответ или решение
Чтобы настроить Git так, чтобы при вводе git <subcommand> --help
отображалось краткое описание опций команды, вместо использования системы документации с пейджером (как man или info), необходимо выполнить несколько шагов, поскольку oleh настройка по умолчанию работает через man. Вот как это можно сделать:
1. Создание обертки
Вы можете создать простой скрипт-обертку, который будет перехватывать вызовы --help
и заменять их на -h
, чтобы получить краткое описание.
Пример скрипта:
#!/bin/sh -
case "$2" in --help)
set -- "$1" -h
esac
exec /usr/bin/git "$@"
2. Установка скрипта
- Сохраните скрипт как, например,
git-wrapper.sh
. - Сделайте его исполняемым:
chmod +x git-wrapper.sh
- Поместите его в директорию, которая раньше в
PATH
, например/usr/local/bin/git
, чтобы он использовался вместо бинарного файла Git по умолчанию:sudo mv git-wrapper.sh /usr/local/bin/git
Или установите его в ваш локальный каталог, например ~/bin/git
, предполагая, что ~/bin
входит в ваш PATH
.
3. Проверка работы
После установки скрипта введите команду, например:
git branch --help
Теперь вместо открытия man-страницы с использованием пейджера должна отображаться краткая справка о команде.
4. Альтернативный метод
Если вы хотите получить доступ к man-страницам без пейджера и хотите ограничить вывод информации, вы можете использовать:
man git-<subcommand> | less | head -n 15
Этот способ позволяет вам просмотреть только определенное количество строк документации, например, 15 первых строк, что может быть полезно для быстрого ознакомления.
Заключение
Настройка Git для показа краткой справки вместо запуска системы документации с пейджером требует несколько дополнительных шагов, но это возможно с помощью обертки или использования более целенаправленных команд. Если в будущем Git добавит такую настройку по умолчанию (например, help.format
), это упростит процесс.