我正在尝试更改终端中的命令提示符。我总是得到错误:

-bash: __git_ps1:命令未找到

我已经尝试过了,只是把它输入到终端,就像:__git_ps1。我还在.bash_profile中尝试了它

if [ -f ~/.git-completion.bash ]; then
  source ~/.git-completion.bash
  export PS1='[\W]$(__git_ps1 "(%s)"): '
fi

正如你可能会看到/告诉,是的,我确实安装了自动完成,它确实工作得很好!

我遇到了这个问题:“PS1 env变量不能在mac上工作”,这给出了代码

别名__git_ps1 =“git分支2 > / dev / null | grep‘*’| sed /* \(.*\)/(\ 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):没有这样的文件或目录

注意:我也将别名移到源代码下面,没有任何区别。我的git版本是1.7.12.1

这应该是一个简单的更改。有人能帮帮我吗?

编辑10/13/12

不,我肯定不想自己定义__git_ps1,但只是想看看这样做是否会被识别。是的,我有。git完成。已安装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完成符。bash文件。

编辑10/13/12 -由Mark Longair解决(如下)

下面的代码在.bash_profile中为我工作,而其他人没有…

if [ -f ~/.git-prompt.sh ]; then
  source ~/.git-prompt.sh
  export PS1='Geoff[\W]$(__git_ps1 "(%s)"): '
fi

当前回答

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

其他回答

高Sierra清洁解决方案与颜色!

没有下载。没有啤酒。没有Xcode

只需将其添加到~/。bashc或~/.bash_profile

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" "\\\$ "'

针对MacOS Sierra和git版本2.10.1 <2017-2-06>的解决方案

步骤1:安装Git

如果您已经安装了最新的git,则可以跳过此步骤。

从浏览器https://git-scm.com/download/下载git包

注意:如果你安装curl [option] https://..。选项来下载,你必须确保你的系统支持SSL。因此,对于新手来说,从浏览器下载并直接从git安装程序中安装要容易得多。

Installation Verification:

显示你的git目录在哪里:哪个git 显示当前git的版本:git当前版本应该是2.10.1。

步骤2:将git配置文件添加到shell中

打开您的shell配置文件: 纳米~ /。Bash_profile或nano ~/。bashrc取决于你的修改在哪里。 将以下代码添加到文件中: 源/usr/local/git/contrib/completion/git-completion.bash 源/usr/local/git/contrib/completion/git-prompt.sh

注意:在OSX升级到El Capitain后,git的安装位置从opt/ directory更改为usr/local/,这就是为什么上面的一些旧答案在MacOS Sierra中不再有效的原因。

Add the following code to your PS1 configuration: Option 1: add directly to your PS1: export PS1='\w$(__git_ps1 "(%s)") > ' I prefer this simple approach since I already know the .git-completion.bash is there in my home directory, and I can add other prompt format in the front of it. here is my personal prompt for your reference: export PS1='\t H#\! \u:\w$(__git_ps1 "{%s}") -->> ' Option 2: Add a selection script if [ -f ~/.git-completion.bash ]; then export PS1='\w$(__git_ps1 "(%s)") > ' fi Save and use the profile: source ~/.bash_profile or source ~/.bashrc

Now you should see the git prompt working properly and shows which branch you are in right now.

这在OS 10.8的.bash_profile中工作

if [ -f ~/.git-prompt.sh ]; then
  source ~/.git-prompt.sh
  export PS1='YOURNAME[\W]$(__git_ps1 "(%s)"): '
fi

我知道这不是真正的答案……

我在我的.bashrc中获取git-prompt.sh时遇到了一些奇怪的问题,所以我开始寻找其他解决方案。这个:http://www.jqno.nl/post/2012/04/02/howto-display-the-current-git-branch-in-your-prompt/不使用__git_ps1,作者声称它也适用于Mac(目前它在我的Ubuntu上工作完美,很容易调整)。

我希望这能有所帮助!

这个对我来说很有用,它有彩色的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='\[\033[32m\]\u@\h\[\033[00m\]:\[\033[34m\]\w\[\033[31m\]$(__git_ps1)\[\033[00m\]\$ '

一定要使用正确的路径!我使用homebrew安装git,使用brew list git获取当前安装的路径。

最好不要使用硬编码的路径,但不知道如何获得当前安装的路径。

更多信息请访问:http://en.newinstance.it/2010/05/23/git-autocompletion-and-enhanced-bash-prompt/