Как заставить git-completion.bash работать на Mac OS X?

Как заставить git-completion.bash работать на Mac OS X?

Я следовалhttp://blog.bitfluent.com/post/27983389/git-utilities-you-cant-live-withoutдобавить git-completion.bashк моему/opt/local/etc/bash_completion.d/git-completion

и я вставил PS1='\h:\W$(__git_ps1 "(%s)") \u\$ 'свой .bashrc_profile

Но теперь я получаю это -bash: __git_ps1: command not foundот всего, что делаю cd.

Можете ли вы мне подсказать, что я упускаю?

решение1

Я установил git с помощьюMacPortsна моей новой установке Snow Leopard. После установки MacPorts из образа .dmg, в Terminal.app будут следующие команды:

sudo port selfupdate
sudo port install git-core +bash_completion

Если вам также нужна поддержка извлечения из репозиториев и документов SVN, используйте это вместо второй строки:

sudo port install git-core +bash_completion +doc +svn

Затем добавьте следующее в ваш ~/.profile или ~/.bash_profile:

# Завершение команды оболочки Bash для MacPorts
если [ -f /opt/local/etc/bash_completion ]; тогда
    . /opt/local/etc/bash_completion
фи

или для MacPorts начиная с версии 2.1.2 на Mountain Lion:

# Завершение команды оболочки Bash для MacPorts
если [ -f /opt/local/etc/profile.d/bash_completion.sh ]; тогда
  . /opt/local/etc/profile.d/bash_completion.sh
фи

или для MacPorts с более новыми версиями git:

если [ -f /opt/local/share/git-core/git-prompt.sh ]; тогда
    . /opt/local/share/git-core/git-prompt.sh
фи

Примечание: bash 4.1 или выше требуется для bash_completion.sh. Если автодополнение не работает, попробуйте echo $BASH_VERSIONпосмотреть, в этом ли проблема. Если да, войдите в MacPorts bash, набрав bashи попробуйте автодополнение git еще раз.

решение2

Если вы установили git с помощью homebrew, то вы можете немного изменить совет MacPorts и добавить его в свой .bash_profileи.bashrc

if [ -f `brew --prefix`/etc/bash_completion.d/git-completion.bash ]; then
. `brew --prefix`/etc/bash_completion.d/git-completion.bash
fi

Лучший способ проверить, правильно ли установлен git, — это выполнить команду homebrew

brew info git

и проверьте вывод для каталога установки завершения git bash

В последней версии Git (1.7.12) для включения подсказки также требуется следующее.

if [ -f `brew --prefix`/etc/bash_completion.d/git-prompt.sh ]; then
    . `brew --prefix`/etc/bash_completion.d/git-prompt.sh
fi

решение3

Все, что вам нужно сделать, это поместить git-completion.bashфайл в домашний каталог пользователя и поместить в него binследующее :.profile.bash_profile

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

Это делает то, что ваш локальный bin находится в PATH, и sourceкоманда запускает процесс. Затем, конечно, изменение PS1 помещает текущую проверенную ветку в приглашение.

Таким образом, не нужно устанавливать MacPort для последующей установки «завершенной» версии GIT (особенно раздражает, если она у вас уже установлена).

решение4

Вам нужно получить исходные функции завершения команд. Добавьте в свой .bashrc_profile перед PS1:

. /opt/local/etc/bash_completion.d/git-completion

Связанный контент