1

Я на Mac (10.6.5). Вот пример того, что идет не так:

[m@m ~ (master)]$ cd ~/Documents
[m@m ~/Documents (master)]$ cd ~/Applications
[m@m ~/Applications (master)]$ cd ~/Library
[m@m ~/Library (master)]$ cd ~/Sites/somesite
[m@m ~/Sites/somerepo (FEATURE_SOMEFEATURE)]$

Вот соответствующее содержимое моего .bash_profile:

source ~/.git-completion.bash
PS1='[\u@\h \w$(__git_ps1 " (%s)")]\$ '

Я использую стандартный скрипт завершения git - я просто скопировал его в свой домашний каталог.

2 ответа2

2

Это дефект в __git_ps1. Проблема в том, что имя ветви не обновляется после изменения каталога. Даже после проверки другой ветви PS1 по-прежнему показывает ветку, которую вы ранее проверяли. Появляется только в OS X, в Linux работает нормально.

1

Я подозреваю, что вы инициализировали свой домашний каталог как Git-репозиторий.

Вы должны убедиться в этом, проверив вывод git rev-parse --git-dir в ~/Documents and ~/Applications (то есть везде, где вы неожиданно видите master в вашем приглашении). Результаты, скорее всего, скажут вам, что Git использует /Users/yourname/.git в качестве GIT_DIR для этих других каталогов. Это будет иметь место для любого (транзитивного) подкаталога вашего домашнего каталога, который сам по себе не является другим хранилищем (или под тем, который находится ближе, чем ваш домашний каталог).

То же самое касается инициализации корневого каталога или /Users в качестве репозитория Git (приглашение получит свой статус для всего, что находится под ними, кроме собственного репозитория Git (или такого другого репозитория Git)).

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