Я намагаюся змінити командний рядок у терміналі. Я продовжую отримувати помилку:
-bash: __git_ps1: command not found
Я пробував просто ввівши його в термінал як: __git_ps1
. Я також спробував це в.bash_profile
if [ -f ~/.git-completion.bash ]; then
source ~/.git-completion.bash
export PS1='[\W]$(__git_ps1 "(%s)"): '
fi
Як ви можете побачити / сказати, так, у мене встановлено автоматичне завершення, і це чудово працює!
Я натрапив на це питання: " Змінна PS1 env не працює на mac ", яка дає код
alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'"
Тож я додаю це, .bash_profile
сподіваючись, що це щось змінить. Ну, так і було. Це просто змінило вихід помилки.
Ось .bash_profile
з додаванням:
alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'"
if [ -f ~/.git-completion.bash ]; then
source ~/.git-completion.bash
export PS1='[\W]$(__git_ps1 "(%s)"): '
fi
А тепер ось змінений вихід помилки:
sed: (%s): No such file or directory
Примітка. Я також перемістив псевдонім під джерелом без різниці. У мене версія git 1.7.12.1
Це має бути проста зміна. Може хтось, будь ласка, допоможе мені?
Редагувати 13.10.12
Ні, я, безумовно, не хочу визначати __git_ps1 сам, але просто намагався зрозуміти, чи буде це розпізнано. Так, у мене встановлений .git-completion.bash
файл. Ось як я отримав автоматичне завершення роботи на своїй машині.
cd ~
curl -OL https://github.com/git/git/raw/master/contrib/completion/git-completion.bash
mv ~/git.completion.bash ~/.git-completion.bash
ls -la
Потім перераховує .git-completion.bash
файл.
Редагувати 13.10.12 - Вирішено Марком Лонгейром (нижче)
Наступний код працював для мене в той .bash_profile
час, як інші не робили ...
if [ -f ~/.git-prompt.sh ]; then
source ~/.git-prompt.sh
export PS1='Geoff[\W]$(__git_ps1 "(%s)"): '
fi
git <tab>
як зазначено в коміті, на який посилається Марк Лонгайр.
git-completion.bash
визначає__git_ps1
як функцію оболонки. Ваш? Як ви знаєте, що завершення працює? Що відбувається під час введенняgit h
<TAB>?