(Mac) -bash: __git_ps1: command not found

后端 未结 19 1925
感动是毒
感动是毒 2020-11-30 16:20

I\'m trying to change my command promt in terminal. I keep getting the error:

-bash: __git_ps1: command not found

I\'ve tried it just by typing

相关标签:
19条回答
  • 2020-11-30 17:02

    I had same problem when upgrading to Yosemite.

    I just had to modify ~/.bashrc to source /usr/local/etc/bash_completion.d/git-prompt.sh instead of the old path.

    then re-source your . ~/.bashrc to get the effect.

    0 讨论(0)
  • 2020-11-30 17:03

    this works in OS 10.8 in the .bash_profile

    if [ -f ~/.git-prompt.sh ]; then
      source ~/.git-prompt.sh
      export PS1='YOURNAME[\W]$(__git_ps1 "(%s)"): '
    fi
    
    0 讨论(0)
  • 2020-11-30 17:04

    For macports I had to add: source /opt/local/share/git-core/git-prompt.sh to my ./profile

    0 讨论(0)
  • 2020-11-30 17:06

    At least with Xcode 6, you already have git-completion.bash. It's inside the Xcode app bundle.

    Just add this to your .bashrc:

    source `xcode-select -p`/usr/share/git-core/git-completion.bash
    
    0 讨论(0)
  • 2020-11-30 17:07

    Please not that, if you haven't installed git through Xcode or home-brew, you'll likely find the bash scripts haysclarks refers to in /Library/Developer/CommandLineTools/, and not in /Applications/Xcode.app/Contents/Developer/, thus making the lines to include within .bashrc the following:

    if [ -f /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash ]; then
        . /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash
    fi
    
    source /Library/Developer/CommandLineTools/usr/share/git-core/git-prompt.sh
    

    You'll need those lines if you wish to use git-prompt as well. [1]: https://stackoverflow.com/a/20211241/4795986

    0 讨论(0)
  • 2020-11-30 17:11

    You've installed the version of git-completion.bash from master - in git's development history this is after a commit that split out the __git_ps1 function from the completion functionality into a new file (git-prompt.sh). The commit that introduced this change, which explains the rationale, is af31a456.

    I would still suggest that you just source the version of git-completion.bash (or git-prompt.sh) that is bundled with your installation of git.

    However, if for some reason you still want to use this functionality by using scripts separately downloaded from master, you should download git-prompt.sh similarly:

    curl -o ~/.git-prompt.sh \
        https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh
    

    ... and add the following line to your ~/.bash_profile:

    source ~/.git-prompt.sh
    

    Then your PS1 variable that includes __git_ps1 '%s' should work fine.

    0 讨论(0)
提交回复
热议问题