(Mac) - bash: git ps1: команда не найдена
я пытаюсь изменить свою команду promt в терминале. Я продолжаю получать сообщение об ошибке:
-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/* (.*)/()/'"
поэтому я добавляю его к моему .bash_profile
надеясь, что это что-то изменит. Ну, так и вышло. Он просто изменил вывод ошибок.
здесь .bash_profile
С добавлением:
alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* (.*)/()/'"
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
это должно быть простое изменение. Может кто-то пожалуйста, помогите мне?
изменить 10/13/12
Нет, я определенно не хочу определять __git_ps1 сам, но просто пытался увидеть, будет ли он распознан, сделав это. Да, у меня есть . Вот как я получил автоматическое завершение на моей машине.
cd ~
curl -OL https://github.com/git/git/raw/master/contrib/completion/git-completion.bash
mv ~/git.completion.bash ~/.git-completion.bash
A ls -la
затем перечислены .
изменить 10/13/12 - Решается с помощью Марк Longair (ниже)
следующий код работал для меня в .bash_profile
в то время как другие не сделали...
if [ -f ~/.git-prompt.sh ]; then
source ~/.git-prompt.sh
export PS1='Geoff[W]$(__git_ps1 "(%s)"): '
fi
17 ответов:
вы установили версию
git-completion.bash
Сmaster
- в истории развития git это после фиксации, которая разделила__git_ps1
функция из функции завершения в новый файл (git-prompt.sh
). Фиксация, которая внесла это изменение, которое объясняет обоснование, является af31a456.Я все равно предлагаю вам просто исходную версию
git-completion.bash
(илиgit-prompt.sh
), который поставляется в комплекте с вашей установкой git.однако, если по какой-то причине вы все еще хотите использовать эту функцию, используя скрипты, загруженные отдельно от
master
скачатьgit-prompt.sh
так же:curl -o ~/.git-prompt.sh \ https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh
... и добавьте следующую строку в ваш
~/.bash_profile
:source ~/.git-prompt.sh
затем ваш
PS1
переменной, которая включает в себя__git_ps1 '%s'
должно работать нормально.
после обновления до OSX 10.9 Mavericks мне пришлось ссылаться на следующие файлы, чтобы получить завершение команды git shell и приглашение git снова работать.
из моего .bash_profile или похожие:
if [ -f /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-completion.bash ]; then . /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-completion.bash fi source /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-prompt.sh #shell prompt example PS1='\u $(__git_ps1 "(%s)")$ '
вы должны
$ brew install bash bash-завершение git
затем источник "$(brew --prefix)/etc/bash_completion" в вашем .bashrc следующее.
следующие работали для меня как шарм:
выполните следующие действия в вашем терминале:
curl -L https://raw.github.com/git/git/master/contrib/completion/git-prompt.sh > ~/.bash_git
открыть/создать файл:
$ vi ~/.bash_profile
добавить в файл следующее:
source ~/.bash_git export PS1='\[3[01;32m\]os \[3[01;34m\]\w $(__git_ps1 "[%s]")$\[3[00m\] ' export GIT_PS1_SHOWDIRTYSTATE=1 export GIT_PS1_SHOWUPSTREAM="auto"
наконец, источник его с помощью:
$ source ~/.bash_profile
это решит проблему
bash: __git_ps1: command not found
.также ваше приглашение изменится на "os". Чтобы изменить " os "на что-то другое, измените строку" os " в строке экспорта PS1.
решение для MacOS Sierra и Git версии 2.10.1
Шаг 1: Установите Git
вы можете пропустить этот шаг, если вы уже установили последнюю версию git.
скачать git пакет из браузера https://git-scm.com/download/
Примечание: Если вы устанавливаете с
Проверка Правильности Установки :curl [option] https://...
возможность загрузки, вы должны были бы убедиться, что ваша система поддерживает SSL. Так что для новичка, чтобы загрузить с браузер и установить непосредственно из Git installer намного проще.
- показать, где находится ваш каталог git по адресу:
which git
- покажите, какая версия вашего git в настоящее время:
git --version
текущая версия должна быть 2.10.1.Шаг 2: Добавьте свой профиль git в свою оболочку
- Открой свой профиль оболочки :
nano ~/.bash_profile
илиnano ~/.bashrc
зависит от где находится ваша модификация.- добавьте в файл следующий код:
source /usr/local/git/contrib/completion/git-completion.bash
source /usr/local/git/contrib/completion/git-prompt.sh
Примечание: место установки git изменилось с opt / directory на usr/ local / после обновления OSX до El Capitain, и именно поэтому некоторые из старых ответов выше больше не работают в MacOS Sierra.
Теперь вы должны увидеть, что подсказка git работает правильно и показывает, в какой ветке вы находитесь прямо сейчас.
добавить следующий код для вашей конфигурации PS1:
Вариант 1: добавить непосредственно в PS1:
Я предпочитаю этот простой подход, так как я уже знаюexport PS1='\w$(__git_ps1 "(%s)") > '
.git-completion.bash
есть ли в моем домашнем каталоге, и я могу добавить другой формат приглашения в передней его части. вот моя личная подсказка для вашей справки:export PS1='\t H#\! \u:\w$(__git_ps1 "{%s}") -->> '
Вариант 2: Добавить сценарий выбора
if [ -f ~/.git-completion.bash ]; then export PS1='\w$(__git_ps1 "(%s)") > ' fiсохранить и используйте профиль:
source ~/.bash_profile
илиsource ~/.bashrc
у меня была такая же проблема при обновлении до Yosemite.
Я просто должен был изменить
~/.bashrc
доsource /usr/local/etc/bash_completion.d/git-prompt.sh
вместо старого пути.затем повторно источник
. ~/.bashrc
чтобы получить эффект.
__git_ps1 для bash теперь находится в git-prompt.sh в /usr/local/etc / bash_completion.d на моем brew установлена версия git 1.8.1.5
это работает в OS 10.8 В .файл
if [ -f ~/.git-prompt.sh ]; then source ~/.git-prompt.sh export PS1='YOURNAME[\W]$(__git_ps1 "(%s)"): ' fi
Если вы надеетесь использовать Homebrew для обновления Git, и вы позволили своей системе стать устаревшей в целом (как и я), вам может потребоваться сначала обновить Homebrew (согласно brew update: следующие неотслеженные файлы рабочего дерева будут перезаписаны слиянием: спасибо @chris-frisina)
сначала приведите Homebrew в соответствие с текущей версией
cd / usr / local
ГИТ выборки происхождения
git reset -- hard origin / masterзатем обновить Git:
brew upgrade git
Проблема Решена! ; -)
по крайней мере с Xcode 6, у вас уже есть
git-completion.bash
. Он находится внутри пакета приложений Xcode.просто добавьте это к вашему .bashrc следующее:
source `xcode-select -p`/usr/share/git-core/git-completion.bash
Я знаю, что это не настоящий ответ...
У меня были некоторые странные проблемы с поиском git-prompt.sh в моем .bashrc поэтому я начал искать другое решение. Вот это: http://www.jqno.nl/post/2012/04/02/howto-display-the-current-git-branch-in-your-prompt/ не использует __git_ps1 и автор утверждает, что он работает также на Mac (на данный момент он отлично работает на моем Ubuntu, и его легко настроить).
Я надеюсь, что это помогает!
Я делал курс по Udacity для Git hub и имел эту же проблему. Вот мой окончательный код, который делает это работать правильно.
# Change command prompt alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \ . (.*\)/()/'" if [ -f ~/.git-completion.bash ]; then source ~/.git-completion.bash export PS1='[\W]$(__git_ps1 "(%s)"): ' fi source ~/.git-prompt.sh export GIT_PS1_SHOWDIRTYSTATE=1 # '\u' adds the name of the current user to the prompt # '$(__git_ps1)' adds git-related stuff # '\W' adds the name of the current directory export PS1="$purple\u$green$(__git_ps1)$blue \W $ $reset"
это работает! https://i.stack.imgur.com/d0lvb.jpg
высокое разрешение Сьерра чистое с цветами !
нет загрузки. Никакого варева. Нет В Xcode
просто добавьте его в свой~/.bashrc или ~/.файл
export CLICOLOR=1 [ -f /Library/Developer/CommandLineTools/usr/share/git-core/git-prompt.sh ] && . /Library/Developer/CommandLineTools/usr/share/git-core/git-prompt.sh export GIT_PS1_SHOWCOLORHINTS=1 export GIT_PS1_SHOWDIRTYSTATE=1 export GIT_PS1_SHOWUPSTREAM="auto" PROMPT_COMMAND='__git_ps1 "\h:\W \u" "\$ "'
этот работал для меня, и он имеет цветной вывод git и индикатор в приглашении, были ли файлы изменены / добавлены, прямо запеченные в нем:
GIT_PS1_SHOWDIRTYSTATE=true . /usr/local/Cellar/git/1.8.5.2/etc/bash_completion.d/git-completion.bash . /usr/local/Cellar/git/1.8.5.2/etc/bash_completion.d/git-prompt.sh PS1='\[3[32m\]\u@\h\[3[00m\]:\[3[34m\]\w\[3[31m\]$(__git_ps1)\[3[00m\]$ '
обязательно используйте правильный путь! Я использовал homebrew для установки git, используйте
brew list git
получить путь к текущей установке.было бы неплохо не использовать жесткий кодированный путь, но не знаю, как получить путь к текущей установке.
больше информации здесь: http://en.newinstance.it/2010/05/23/git-autocompletion-and-enhanced-bash-prompt/
для git, есть
/Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-prompt.sh
. И, пожалуйста, смотрите/etc/bashrc_Apple_Terminal
тоже.Итак, я положил их в
~/.bash_profile
:if [ -f /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-prompt.sh ]; then . /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-prompt.sh export GIT_PS1_SHOWCOLORHINTS=1 export GIT_PS1_SHOWDIRTYSTATE=1 PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND; }__git_ps1 '\u:\w' '\$ '" fi
- скачать файлы git-prompt.sh и git-завершение.Баш отсюда завершение ГИТ
- переименовать файлы.
- переместить эти файлы в свой домашний каталог.
Добавить файл на .файл
source ~/git-completion0.bash source ~/git-prompt0.sh and four to trigger the code block.