fish_git_prompt - вывод информации о git для использования в приглашении
Резюме
function fish_prompt
printf '%s' $PWD (fish_git_prompt) ' $ '
end
Описание
Функция fish_git_prompt отображает информацию о текущей репозитории git, если таковая имеется.
Git должен быть установлен.
Существует множество опций настройки, которые можно контролировать с помощью опций git или переменных оболочки fish. Опции git, где доступны, имеют приоритет над переменной оболочки fish с той же функцией. Опции git могут быть настроены для каждой репозитории или глобально. Опции git можно установить с помощью команды git config, а переменные оболочки fish можно установить как обычно с помощью команды set.
-
$__fish_git_prompt_show_informative_statusили опция gitbash.showInformativeStatusмогут быть установлены для включения отображения «информативного» типа, которое покажет большое количество информации — количество не отслеживаемых файлов, изменённых файлов, не отправленных/не полученных коммитов и др. В больших репозиториях это может занять много времени, поэтому вы можете отключить его в этих репозиториях с помощьюgit config --local bash.showInformativeStatus false. Это также изменяет символы, используемые в приглашении, на менее простые (✚вместо*для состояния «изменён» например), и если вас интересует только это, установите$__fish_git_prompt_use_informative_charsвместо этого. -
$__fish_git_prompt_showdirtystateили опция gitbash.showDirtyStateмогут быть установлены для отображения, является ли репозиторий «изменённым», т.е. содержит ли он несохранённые изменения. -
$__fish_git_prompt_showuntrackedfilesили опция gitbash.showUntrackedFilesмогут быть установлены для отображения, есть ли в репозитории неотслеживаемые файлы (которые не игнорируются). -
$__fish_git_prompt_showupstreamможет быть установлено в список значений, чтобы определить, как отображаются изменения между HEAD и upstream:-
auto -
сводка различий между HEAD и его upstream
-
verbose -
отображение количества коммитов опережающих/отстающих от upstream (+/-)
-
name -
если verbose, то также отображается сокращенное имя upstream
-
informative -
аналогично verbose, но ничего не отображается при равенстве — это значение по умолчанию, если включено информативное состояние.
-
git -
всегда сравнивать HEAD с @{upstream}
-
svn -
всегда сравнивать HEAD с вашим SVN upstream
-
none -
отключает (полезно с информативным состоянием)
-
-
$__fish_git_prompt_showstashstateможет быть установлено для отображения состояния stash. -
$__fish_git_prompt_shorten_branch_lenможет быть установлено в число символов, до которого будет сокращено имя ветви. -
$__fish_git_prompt_describe_styleможет быть установлено в один из следующих стилей, чтобы описать текущий HEAD:-
contains -
относительно более новой помеченной метки, например
(v1.6.3.2~35) -
branch -
относительно более новой метки или ветви, например
(master~4) -
describe -
относительно более старой помеченной метки, например
(v1.6.3.1-13-gdd42c2f) -
default -
точно совпадающая метка (
(develop))
Если ни одно из этих условий не выполняется, используется сокращенный до 8 символов SHA коммита.
-
-
$__fish_git_prompt_showcolorhintsможет быть установлено для включения форматирования по цветам для имени ветви и символов состояния.
Ряд переменных устанавливает символы и цвета, используемые в качестве индикаторов. Многие из них имеют другое значение по умолчанию, если используется информативное состояние или установлено $__fish_git_prompt_use_informative_chars. Обычное значение по умолчанию приводится первым, затем информативное значение по умолчанию (если оно отличается). Если для цветов нет значения по умолчанию, они по умолчанию имеют значение $__fish_git_prompt_color.
-
$__fish_git_prompt_char_stateseparator(' ',|) - символ, используемый между символами состояния -
$__fish_git_prompt_color(нет значения по умолчанию) -
$__fish_git_prompt_color_prefix- цвет префикса( -
$__fish_git_prompt_color_suffix- цвет суффикса) -
$__fish_git_prompt_color_bare- цвет для голой репозитории — без рабочей области -
$__fish_git_prompt_color_merging- цвет, когда выполняется слияние/перебазирование/отмена/бисекция или cherry-pick
Некоторые переменные используются только в некоторых режимах, например, когда включено информативное состояние:
-
$__fish_git_prompt_char_cleanstate(✔) - символ, используемый, когда ничего больше не применимо $__fish_git_prompt_color_cleanstate
Переменные, используемые с showdirtystate:
-
$__fish_git_prompt_char_dirtystate(*, ✚) - количество «изменённых» изменений, т.е. файлов с изменениями, которые не добавлены в индекс -
$__fish_git_prompt_char_invalidstate(#, ✖) - количество «неслитых» изменений, например дополнительных изменений в уже добавленных файлах -
$__fish_git_prompt_char_stagedstate(+, ●) - количество файлов в индексе без дополнительных изменений -
$__fish_git_prompt_color_dirtystate(красный при showcolorhints, такое же, как color_flags в противном случае) $__fish_git_prompt_color_invalidstate-
$__fish_git_prompt_color_stagedstate(зеленый при showcolorhints, color_flags в противном случае)
Переменные, используемые с showstashstate:
-
$__fish_git_prompt_char_stashstate($, ⚑) -
$__fish_git_prompt_color_stashstate(такое же, как color_flags)
Переменные, используемые с showuntrackedfiles:
-
$__fish_git_prompt_char_untrackedfiles(%, …) - символ для неотслеживаемых файлов -
$__fish_git_prompt_color_untrackedfiles(такое же, как color_flags)
Переменные, используемые с showupstream (также подразумеваются информативным состоянием):
-
$__fish_git_prompt_char_upstream_ahead(>, ↑) - символ для коммитов, на которые эта репозитория опережает upstream -
$__fish_git_prompt_char_upstream_behind(<, ↓) - символ для коммитов, на которые эта репозитория отстает от upstream -
$__fish_git_prompt_char_upstream_diverged(<>) - символ, если эта репозитория опережает и отстает от upstream -
$__fish_git_prompt_char_upstream_equal(=) - символ, если эта репозитория равна upstream -
$__fish_git_prompt_char_upstream_prefix('') $__fish_git_prompt_color_upstream
Цвета, используемые с showcolorhints:
-
$__fish_git_prompt_color_branch(зеленый) - цвет ветви -
$__fish_git_prompt_color_branch_detached(красный) цвет ветви, если она отсоединённая (например, коммит оформлен для проверки) -
$__fish_git_prompt_color_flags(--полужирный синий) - цвет по умолчанию для состояния изменённых/подготовленных/сохранённых/неотслеживаемых файлов
Обратите внимание, что все цвета также могут иметь соответствующий цвет _done. Например, содержимое $__fish_git_prompt_color_upstream_done печатается сразу _после_ upstream.
См. также fish_vcs_prompt, который вызовет все поддерживаемые функции командной строки системы контроля версий, включая git, Mercurial и Subversion.
Пример
Простое приглашение, отображающее информацию о git:
function fish_prompt
# ...
set -g __fish_git_prompt_showupstream auto
printf '%s %s$' $PWD (fish_git_prompt)
end
© 2020 fish-shell developers
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.2/cmds/fish_git_prompt.html