Подтвердить что ты не робот

Git Советы и подсказки: отображение ветки в командной строке не работает и создает побочные эффекты функции Git не работает и многие другие

Просто пытаясь понять мои знания git и использовать советы и трюки,

Я обновил свой .bashrc файл, как предлагается в Tip PS1='[\[email protected]\h \W$(__git_ps1 " (%s)")]\$ ' , но, к моему удивлению, теперь моя ветка команды git не работает и даже если я ее удалю от .bashrc, чем и не работает для меня.

И каждый раз, когда я использую свою командную строку, я получаю -bash: __git_ps1: command not found любые рекомендации или предложения?

Обновить: я хочу избавиться от него сейчас, как я могу это достичь?

4b9b3361

Ответ 1

Включены ли функции git bash -completion? Вы можете найти их в своей системе уже, просто не включены.

Чтобы определить, включены ли они или нет, введите git Space Tab. Если вы получите список файлов, у вас нет завершения, если вы получите список команд, вы do (и ваше приглашение должно работать).

Обновление. После удаления строки из вашего .bashrc проблемы, которые вы испытывали, должны исчезнуть после перезапуска вашей оболочки. Простое повторное получение файла не поможет, так как оно не отменяет переменную приглашения (и в любом случае эта переменная имела значение, прежде чем вы ее перевернули).

Ответ 2

По googling для "__git_ps1" я нашел первый результат, в котором говорится:

В дистрибутиве git уже есть функция. Если вы посмотрите источник существует каталог с именем contrib, который имеет файл завершения bash, который дает вам __git_ps1.

Похоже, вам нужно найти этот вклад/файл и указать его в своем профиле bash!

Ответ 3

если вы используете mac, попробуйте это

sudo port selfupdate
sudo port install git-core +bash_completion
then 
cd /private/etc/
sudo vi bashrc
and add the next
source /opt/local/share/doc/git-core/contrib/completion/git-completion.bash
if [ -f /opt/local/etc/bash_completion ]; then
   . /opt/local/etc/bash_completion
fi

export PS1='\w $(__git_ps1 "\[\e[31m\]:%s")\[\e[0m\] > '

Ответ 4

Я думаю, что последние версии git отделили функции приглашения от git -completion.bash в отдельный файл prompt.sh... мне пришлось добавить исходную строку в мой профиль bash, чтобы включить это и только тогда я избавился от жалобы __git_ps1, не найденной.

Ответ 5

Это сработало для меня Просто зайдите в свой профиль bash vi ~/bash_profile и вставьте это

parse_git_branch() {
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}

export PS1="\[email protected]\h \[\033[32m\]\w - \$(parse_git_branch)\[\033[00m\] $ "