Ответ 1
Git В Windows почти всегда используется оболочка bash. Таким образом, это не Git, устанавливающее подсказку столько, сколько делает bash.
Есть два способа установить подсказки в Bash. Одна из них - это команда PS1
, которая довольно гибкая, но ограничена определенным набором последовательностей escape-символов. К сожалению, информация Git не является одной из тех escape-последовательностей (хотя я подозреваю, что это произойдет когда-нибудь). Второй способ установить приглашение можно, установив переменную среды PROMPT_COMMAND
. Если это установлено, $PROMPT_COMMAND
выполняется и используется в качестве приглашения вместо переменной среды PS1
.
При установке стандартного Git с BASH приглашение Git определяется в файле /etc/profile
. Кстати, etc
- это каталог, в котором вы установили Git, который обычно находится под %PROGRAMFILES%
, если вы не изменили его при установке Git.
В /etc/profile
script в строке # 156 в моей версии вы увидите команду PS1
, которая будет установлена и с помощью $(__git_ps1)
в $PS1
в качестве средства выполнения внешней команды в приглашении. (Третий способ, о котором я не упоминал ранее).
__git_ps1
- это функция оболочки. Вы также заметите немного выше (строка № 154 в моей версии), в которой /etc/git-completion.bash
находится в источнике, а также /etc/git-prompt.sh
. Он /etc/git-prompt.sh
, который определяет функцию __git_ps1
(строка # 273 в моей версии). Вы заметите, что функция __git_ps1
выполняет несколько других функций, определенных в /etc/git-prompt.sh
.
Таким образом, в стиле Rube Goldberg запрос Git определяется в /etc/profile
посредством определения $PS1
, который вытягивает /etc/git-prompt.sh
, который определяет функцию __git_ps1
, которая тянет в функции __git_ps1_show_upstream
и __git_ps1_colorize_gitstring
. Затем $PS1
использует строку $(...)
как часть вытягивания функции __git_ps1
в PS1
.
Вы можете определить свой собственный $HOME/.bash_profile
, чтобы переопределить способ установки подсказки для определения собственной подсказки. И когда вы это сделаете, вы также можете использовать функцию __git_ps1
bash в своем собственном запросе.
Или вы можете просто решить ничего не трогать и просто отступить очень медленно. В конце концов, у вас может быть реальная работа.