私は http://blog.bitfluent.com/post/27983389/git-utilities-you-cant-live-without を付けてgit-completion.bash
を追加しました私の/opt/local/etc/bash_completion.d/git-completion
そして私はPS1='\h:\W$(__git_ps1 "(%s)") \u\$ '
を私の.bashrc_profileに入れました
しかし今、私はcd
を実行するすべてをこの-bash: __git_ps1: command not found
で取得しています。
足りないものを教えてください。
私は新しいSnow Leopardのインストールに MacPorts を使ってgitをインストールしました。 MacPortsが.dmgイメージからインストールされると、これらはTerminal.appのコマンドになります。
Sudo port selfupdate
Sudo port install git-core +bash_completion
SVNのリポジトリやドキュメントから取得するためのサポートも必要な場合は、2行目の代わりにこれを使用してください。
Sudo port install git-core +bash_completion +doc +svn
その後、〜/ .profileまたは〜/ .bash_profileに以下を追加してください。
#MacPorts Bash Shellコマンドの完了 if [-f/opt/local/etc/bash_completion];その後 /opt/local/etc/bash_completion fi
またはMountain Lionのバージョン2.1.2以降のMacPortの場合:
#MacPorts Bash Shellコマンドの完了 if [-f /opt/local/etc/profile.d/bash_completion.sh];その後 /opt/local/etc/profile.d/bash_completion.sh fi
またはgitの新しいバージョンを搭載したMacPortの場合:
if [-f /opt/local/share/git-core/git-Prompt.sh];その後 /opt/local/share/git-core/git-Prompt.sh fi
注:bash 4.1以上がbash_completion.shに必要です。補完がうまくいかない場合はecho $BASH_VERSION
を試して、それが問題であるかどうかを確認してください。もしそうなら、bash
と入力してMacPorts bashと入力し、もう一度git completionを試してください。
自作を使用してgitをインストールした場合は、MacPortsのアドバイスを少し調整して、これを.bash_profile
と.bashrc
に追加します。
if [ -f `brew --prefix`/etc/bash_completion.d/git-completion.bash ]; then
. `brew --prefix`/etc/bash_completion.d/git-completion.bash
fi
自作のistを使ってgitが正しくインストールされているかどうかをチェックする最良の方法
brew info git
そしてgit bash完了のインストールディレクトリの出力をチェックしてください
Git(1.7.12)の最新バージョンでは、プロンプトを有効にするために以下も必要とします。
if [ -f `brew --prefix`/etc/bash_completion.d/git-Prompt.sh ]; then
. `brew --prefix`/etc/bash_completion.d/git-Prompt.sh
fi
git-completion.bash
ファイルをユーザーのホームbin
ディレクトリに置き、次のファイルを.profile
または.bash_profile
ファイルに入れるだけです。
export PATH="$HOME/bin:$PATH"
source ~/bin/git-completion.bash
PS1='[\u@\h \w$(__git_ps1 " (%s)")]\$ '
これがすることはあなたのローカルbinがPATHの中にあることとsource
コマンドがうまくいくことを確かめることです。そしてもちろん、PS1の変更により、現在チェックアウトされているブランチがプロンプトに表示されます。
そのため、MacPortをインストールしてからGITの「完了」バージョンをインストールすることはできません(すでにインストールされている場合は特に不快です)。
現在の答えは古いMacPortには正しいが、最新のMacPortにも同じ問題が発生するという新しい問題がある。
現在のbash-completionパッケージ(2.0 r1)が正しく機能するには、少なくともbash 4.1が必要です。通常のOS Xターミナルは/bin/bash
を使用するので、3.xしか取得しません。こちらのMacPortsドキュメントで説明されているように/opt/local/bin/bash -l
を使用するように端末設定を変更する必要があります。 http://trac.macports.org/wiki/howto/bash-completion
コマンド補完機能を利用する必要があります。 PS1の前に.bashrc_profileを追加します。
. /opt/local/etc/bash_completion.d/git-completion
厄介なことに、これはまだまた壊れています。今回のgitはバージョン1.7.12-1です。人々が補完機能なしでプロンプト機能だけを持つことができるようにするため(これは物事を遅くする可能性があります)、彼らはbash_completion/gitから独自のファイルgit-Prompt.shにプロンプト機能をリファクタリングしました。
そのため、@ Laraで説明されているようにbash_completionを追加しても、補完のみが得られます(タブを押すとタグ/ブランチ名が補完されます)。
__git_ps1
を取得してPS1プロンプトで使用できるようにするには、〜/ .profileに以下を追加する必要もあります。
. /opt/local/share/doc/git-core/contrib/completion/git-Prompt.sh
いくつかの背景はこちら - https://bbs.archlinux.org/viewtopic.php?pid=1163632#p1163632
または 自作 と
brew install bash-completion git-extras
似たような質問 で解決策が見つかりました。
git-osx-installer にはgit-completion.bash
が付属しており、/usr/local/git/contrib/completion/
にインストールします。そのファイルをあなたの.bash_profile
から入手して__git_ps1
を取得するだけです。
Mountain LionとMac-Portsでは、__ git_ps1と補完の両方を正常に実行するために、.bash_profileに次の行を追加する必要がありました。
# Bash Shell command completion
if [ -f /opt/local/share/doc/git-core/contrib/completion/git-completion.bash ]; then
. /opt/local/share/doc/git-core/contrib/completion/git-completion.bash
fi
if [ -f /opt/local/share/doc/git-core/contrib/completion/git-Prompt.sh ]; then
. /opt/local/share/doc/git-core/contrib/completion/git-Prompt.sh
fi
私はbrewを使っているので、bash_completion
内のすべてのものを実行するマスターbash_completion.d
スクリプトは提供されないようです。 gitの補完を追加するためにただ1つのスクリプトを実行することを提案するソリューションは拡張可能ではありません、パッケージが異なると異なる補完スクリプトが追加されるので、おそらくそれらすべてを実行したいのです。そこで私は/etc/bashrc
の末尾にこれを追加しました(Arch Linuxから改作しました):
# source compat completion directory definitions
BASH_COMPLETION_COMPAT_DIR=/usr/local/etc/bash_completion.d
if [[ -d $BASH_COMPLETION_COMPAT_DIR && -r $BASH_COMPLETION_COMPAT_DIR && \
-x $BASH_COMPLETION_COMPAT_DIR ]]; then
for i in $(LC_ALL=C command ls "$BASH_COMPLETION_COMPAT_DIR"); do
i=$BASH_COMPLETION_COMPAT_DIR/$i
[[ -f $i && -r $i ]] && . "$i"
done
fi
少なくともXcode 6では、あなたはすでにgit-completion.bash
を持っています。 Xcodeアプリバンドルの中です。
これをあなたの.bashrcに追加するだけです。
source `xcode-select -p`/usr/share/git-core/git-completion.bash
Adam K. Johnsonの投稿に加えて
また、次のように置くことができます...
# MacPorts Bash Shell command completion
if [ -f /opt/local/etc/bash_completion ]; then
. /opt/local/etc/bash_completion
fi
...あなたが望むなら、あなたの/ etc/profileに。
こうすることで、システム上のすべてのユーザーが、ディレクトリ "/opt/local/etc/bash_completion.d/"にインストールされているbash補完スクリプトの恩恵を受けることができます。
2011年のgrundprinzipによる上記の答えはまだうまくいきますが、今では自作パッケージ bash-completion ( 式 、 repo )は、これをさらに簡単にします。 (これにはgitや他の一般的なツールの補完も含まれます。)
今日のmacOSはBash 3に同梱されていますが、Bash 4を取得するためにbrew install bash
を使用することができます。Bash4を実行している場合は、bash-completionの新しい2.xブランチをインストールしてください。
実行します。
brew install bash-completion@2
~/.bash_profile
に追加してください:
if [ -f /usr/local/share/bash-completion/bash_completion ]; then
. /usr/local/share/bash-completion/bash_completion
fi
あなたがmacOSの標準的なbash 3.xに固執したいなら、代わりにこれらの指示に従ってください。
実行します。
brew install bash-completion
~/.bash_profile
に追加してください:
echo "[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion" >> ~/.bash_profile
参照: http://davidalger.com/development/bash-completion-on-os-x-with-brew/