(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. Итак, для new comer, чтобы загрузить с браузер и установка непосредственно из установщика git намного проще.
- показать, где находится ваш каталог 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.
-
добавить следующий код для вашей конфигурации 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/местные/и т. д./bash_completion.d на моем вареве установлен 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: следующие неотслеженные рабочие файлы дерева будут перезаписаны merge: спасибо @chris-frisina)
сначала приведите Homebrew в соответствие с текущей версией
cd/usr / local
ГИТ выборки происхождения
ГИТ сброс -- 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
Я знаю, что это не настоящий ответ...
У меня были некоторые странные проблемы с sourcing 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-завершение.Баш отсюда завершение Git
- переименовать файлы.
- переместить эти файлы в свой домашний каталог.
-
добавьте исходный файл в .файл
source ~/git-completion0.bash source ~/git-prompt0.sh and four to trigger the code block.