web-dev-qa-db-ja.com

(Mac)-bash:__git_ps1:コマンドが見つかりません

ターミナルでコマンドプロンプトを変更しようとしています。私はエラーを受け続けます:

-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 version 1.7.12.1

これは簡単な変更です。誰かが私を助けてもらえますか?

12月13日編集

いいえ、__ 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ファイルをリストします。

編集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
203
Geoff

masterからgit-completion.bashのバージョンをインストールしました - これはgitの開発史上、__git_ps1関数を補完機能から新しいファイル(git-Prompt.sh)に分割したコミットの後です。この変更を導入した論理的根拠を説明するコミットは、 af31a456 です。

私はあなたのgitのインストールにバンドルされているgit-completion.bash(またはgit-Prompt.sh)のバージョンを単にソースにすることをお勧めします。

ただし、何らかの理由で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'変数はうまく動作するはずです。

294
Mark Longair

OSX 10.9 Mavericksにアップグレードした後、git Shellコマンドを完了させgit Promptを再び動作させるには、以下のファイルを参照しなければなりませんでした。

私の.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)")\$ '
58
haysclark

あなたがすべき

$ brewインストールbash bash-completion git

次に、.bashrcに "$(brew --prefix)/ etc/bash_completion"と入力します。

38
Steven Shaw

次は私のために魅力のように働いた:

ターミナルで以下を実行してください。

curl -L https://raw.github.com/git/git/master/contrib/completion/git-Prompt.sh > ~/.bash_git

Bash_profileを開く/作成する:

$ vi ~/.bash_profile

以下をファイルに追加してください。

source ~/.bash_git
export PS1='\[\033[01;32m\]os \[\033[01;34m\]\w $(__git_ps1 "[%s]")\$\[\033[00m\] '
export GIT_PS1_SHOWDIRTYSTATE=1
export GIT_PS1_SHOWUPSTREAM="auto"

最後に、それを使用してそれを調達する:

$ source ~/.bash_profile

これでbash: __git_ps1: command not foundの問題が解決します。

また、あなたのプロンプトは "os"に変わります。 "os"を他のものに変更するには、エクスポートPS1行の "os"文字列を変更します。

13
Undefined

MacOS Sierraおよびgitバージョン2.10.1 <2017-2-06>用のソリューション

ステップ1:Gitをインストールする

最新のgitを既にインストールしている場合は、このステップを飛ばすことができます。

ブラウザからgitパッケージをダウンロードする https://git-scm.com/download/

注:ダウンロードするためにcurl [option] https://...オプションを使用してインストールする場合は、システムがSSLをサポートしていることを確認する必要があります。だから、新しい人にとっては、ブラウザからダウンロードしてgitインストーラから直接インストールするほうがずっと簡単です。

  • Gitディレクトリがどこにあるかを表示します。which git
  • 現在のgitのバージョンを表示します。git --version現在のバージョンは2.10.1であるはずです。

ステップ2:あなたのgitプロファイルをあなたのシェルに追加する

  1. あなたのシェルプロファイルを開きます。
    • nano ~/.bash_profileまたはnano ~/.bashrc変更箇所によって異なります。
  2. ファイルに次のコードを追加します。
    • source /usr/local/git/contrib/completion/git-completion.bash
    • source /usr/local/git/contrib/completion/git-Prompt.sh

注:OS XをEl Capitainにアップグレードした後、gitのインストール場所がopt /ディレクトリからusr/local /に変更されました。MacOSSierraでは、上記の古い回答の一部が機能しなくなります。

  1. 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]; PS1 = '\ w $(__ git_ps1 "(%s)")>' 
     fi
  2. プロファイルを保存して使用します。source ~/.bash_profileまたはsource ~/.bashrc

7
frzhen

ヨセミテにアップグレードするとき私は同じ問題を抱えていた。

古いパスの代わりに~/.bashrcsource /usr/local/etc/bash_completion.d/git-Prompt.shに変更するだけです。

それから効果を得るためにあなたの. ~/.bashrcを再ソースしてください。

5
chovy

bash用の__git_ps1は、私のBrewインストール済みgitバージョン1.8.1.5の/usr/local/etc/bash_completion.dのgit-Prompt.shにあります。

4
traday

色付きの高シエラクリーンソリューション!

ダウンロードなし醸造しません。 Xcodeなし

〜/ .bashrcか〜/ .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" "\\\$ "'
2
luzik

Homebrewを使ってGitをアップグレードしたいと思っていて、あなたのシステムが一般的に時代遅れになってしまったのなら、Homebrew自体を最新の状態にする必要があるかもしれません - brew update:以下の追跡されていない作業ツリーファイルはマージによって上書きされるでしょう: thanks @ chris-frisina)

最初にHomebrewを現在のバージョンに合わせる

cd/usr/local
git fetch Origin
git reset - 原産地/マスター

次にGitを更新します。

brewアップグレードGit

問題が解決しました! ; - )

2

これはOS 10.8の.bash_profileにあります。

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

少なくともXcode 6では、あなたはすでにgit-completion.bashを持っています。 Xcodeアプリバンドルの中です。

これをあなたの.bashrcに追加するだけです。

source `xcode-select -p`/usr/share/git-core/git-completion.bash
2
jrc

Macportsのために私は私の./profileにsource /opt/local/share/git-core/git-Prompt.shを追加しなければなりませんでした

2
velop
  1. ファイルをダウンロードするgit-Prompt.shgit-completion.bashこれから Git completion
  2. ファイル名を変更してください。
  3. それらのファイルをあなたのホームディレクトリに移動してください。
  4. ソースファイルを.bash_profileに追加します。

    source ~/git-completion0.bash
    source ~/git-Prompt0.sh
    and four to trigger the code block.
    
1
JCLopez

私はそれが本当の答えではないことを知っています...

私は私の.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でも完璧に動作し、微調整は簡単です)。

私はそれが役立つことを願っています!

1
op1ekun

私はGitハブのためにUdacityのコースをやっていて、これと同じ問題を抱えていました。これがmakeが正しく動作する最後のコードです。

# Change command Prompt
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

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

1
superheron

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
0
liudongmiao

これは私のために働いていました、そしてそれは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\]\$ '

必ず正しいパスを使用してください。私はgitのインストールに自作を使用しました。現在のインストールへのパスを取得するにはbrew list gitを使用してください。

ハードコーディングされたパスを使用しないのがいいでしょうが、現在のインストールへのパスを取得する方法がわからない。

ここでより多くの情報: http://en.newinstance.it/2010/05/23/git-autocompletion-and-enhanced-bash-Prompt/

0
Joshua Muheim