たとえば、新しいubuntuマシンでは、を実行したばかりでsudo apt-get git
、たとえばと入力しても完了しませんgit check[tab]
。
http://git-scm.com/docsには何も見つかりませんでしたが、IIRCの完了は最近のgitパッケージに含まれており、bashrcに適切なエントリが必要です。
(cd ~ && exec cat .bashrc | grep completion)
ます。
たとえば、新しいubuntuマシンでは、を実行したばかりでsudo apt-get git
、たとえばと入力しても完了しませんgit check[tab]
。
http://git-scm.com/docsには何も見つかりませんでしたが、IIRCの完了は最近のgitパッケージに含まれており、bashrcに適切なエントリが必要です。
(cd ~ && exec cat .bashrc | grep completion)
ます。
回答:
ほとんどのディストリビューションでは、gitのインストール時にgit完了スクリプトがインストールされます/etc/bash_completion.d/
(または/usr/share/bash-completion/completions/git
)。githubに移動する必要はありません。あなたはそれを使う必要があるだけです-この行をあなたに追加してください.bashrc
:
source /etc/bash_completion.d/git
# or
source /usr/share/bash-completion/completions/git
Ubuntuの一部のバージョンでは、デフォルトでgit autocompleteが壊れている可能性があります。このコマンドを実行して再インストールすると修正されます。
sudo apt-get install git-core bash-completion
HomebrewまたはMacPortsを使用してGit Completionをインストールできます。
if $BASH_VERSION
> 4:(brew install bash-completion@2
更新バージョン)MacOSのデフォルトでは3.2.57(1)-releaseが同梱されているため、bashのどのバージョンを使用しているかに特に注意してください。
に追加.bash_profile
:
if [ -f /usr/local/share/bash-completion/bash_completion ]; then
. /usr/local/share/bash-completion/bash_completion
fi
古いバージョンのbashの場合: brew install bash-completion
に追加.bash_profile
:
[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion
sudo port install git +bash_completion
次にこれをあなたに追加してください.bash_profile
:
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
fi
このガイドの詳細:BashのGit補完機能をインストールする
すべての場合において、変更を有効にするには、新しいシェルを作成する(新しいターミナルのタブ/ウィンドウを開く)必要があることに注意してください。
/usr/share/bash-completion/completions/git
です。 /etc/bash_completion.d/git-prompt
補完のためではなく、gitプロンプトのサポートに使用されます。
brew uninstall bash-completion
、homebrewを介してgitをインストールしている場合にのみ機能し、brew install git
以前に他の方法でgitをインストールしていた場合にのみ機能します。その後、上記の手順が機能します。
同じ問題があり、以下の手順に従いました:
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
次の行を.bash_profile
(通常はホームフォルダーの下に)追加します。
if [ -f ~/.git-completion.bash ]; then
. ~/.git-completion.bash
fi
export https_proxy=proxy_ip:proxy_port
必要がありましたが、システムから設定を取得できない理由がわかりません。
表示される手順のほとんどは、ダウンロードするように指示します
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
そして、それをのようなbash起動スクリプトで調達します.bashrc
。
しかしmaster
、それはブランチを参照しているため、問題がありgit-completion.bash
ます。これは、の最新バージョンです。問題は、インストールしたgitのバージョンと互換性がないために壊れることがあることです。
実際、master
ブランチにgit-completion.bash
はgit v2.18を必要とする新機能があり、パッケージマネージャーとインストーラーのいずれにもまだ更新されていないため、現時点では機能しなくなります。エラーが発生しますunknown option: --list-cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config
したがって、最も安全な解決策は、インストールしたgitと一致するバージョン/タグを参照することです。例えば:
https://raw.githubusercontent.com/git/git/v2.17.1/contrib/completion/git-completion.bash
v2.17.
URLにはの代わりにがあることに注意してくださいmaster
。そして、もちろん、bash起動スクリプトでそれを調達するようにしてください。
/Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash
念のため、githubの2.17.1バージョンと比較して、一致しました。
git-core
してbash-completion
sudo apt-get install -y git-core bash-completion
現在のセッションの使用について
source /usr/share/bash-completion/completions/git
すべてのセッションで常にオンにする
echo "source /usr/share/bash-completion/completions/git" >> ~/.bashrc
https://github.com/git/git/blob/master/contrib/completion/git-completion.bashを参照してください
完了スクリプトを入手するだけです
ちょうどあなたの中でこれをしてください~/.bashrc
:
source /usr/share/bash-completion/completions/git
他の回答では、インストールするように指示されていますが、インストールするbash-completion
必要はありませんが、インストールする場合は、補完を直接入手する必要はありません。あなたは両方ではなくどちらか一方を行います。
より一般的なソリューションは、bash-completionプロジェクトで推奨されているようにシステムの場所を照会することです。
source "$(pkg-config --variable=completionsdir bash-completion)"/git
誰かのために役立つかもしれません:-
次のリンクから.git-completion.bashをダウンロードした後、
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
__git_ps1関数を使用しようとすると、次のエラーが発生しました-
-bash: __git_ps1: command not found
__git_ps1はgit-prompt.shで定義されているため、このコマンドを機能させるには、マスターとは別にスクリプトをダウンロードする必要があるようです。.git-completion.bashのダウンロードと同様に、git-prompt.shを取得します。
curl -L https://raw.github.com/git/git/master/contrib/completion/git-prompt.sh > ~/.bash_git
そして.bash_profileに以下を追加します
source ~/.bash_git
if [ -f ~/.git-completion.bash ]; then
. ~/.git-completion.bash
export PS1='\W$(__git_ps1 "[%s]")>'
fi
source〜/ .bash.gitはダウンロードしたファイルを実行し、
export PS1='\W$(__git_ps1 "[%s]")
コマンドは、現在の作業ディレクトリ(gitリポジトリの場合)の後にチェックアウトブランチ名を追加します。
したがって、次のようになります。
dir_Name[branch_name]
ここで、dir_Nameは作業ディレクトリ名であり、branch_nameは現在作業しているブランチの名前です。
注意してください-__git_ps1は大文字と小文字を区別します。
GitプロジェクトのGithubでは、gitコマンドをオートコンプリートするためのbashファイルを提供しています。
これをホームディレクトリにダウンロードし、bashで強制的に実行する必要があります。これは単に2つのステップであり、次のブログ投稿で完全に説明されています(ステップバイステップ)。
code-worrierブログ:autocomplete-git /
Macでテストしましたが、他のシステムでも動作するはずです。同じアプローチを他のオペレーティングシステムに適用できます。