2016-12-23 6 views
2

私はカスタムのgitコマンドを/ usr/local/binにあるシェルスクリプトを使って実装しました。それは正常に動作しますが、 "git checkout [TAB] [TAB]"のように、コマンドラインでブランチを自動完成させたいと思います。これはどうすればできますか?カスタムgitコマンドの自動補完

EDIT: ちょうどいくつかの明快さを追加して、Gitはあなたは非常に簡単にすることができますスクリプトgit-$subcommandNameを作成することで、独自のコマンドを追加します。私のケースではgit-installで、このスクリプトは、ブランチのチェックアウト、ビルド、パッケージング、ソースコードのインストールを容易にします。

+0

まあ、必要なことは、gitコマンドの過多と、スイッチとパラメータの使い方の混乱を混乱させることです。そのデータに対してある種の先読み検索を実装する。しかし、私は不思議に思っています。なぜあなたは車輪を再発明していますか? gitはbashの自動補完を完全にサポートしています。車輪の再発明は誰にとっても興味深いと思いますか?私は間違ってはいけない:これは興味深いプロジェクトです。しかし、それはかなりの努力を必要とするでしょう...あなたはおそらく、常に元の "それほど良い"ではないでしょう... – GhostCat

+1

私のカスタムコマンド "git install"はブランチ名をとります(そう、はい、git checkoutと同じですが)、その後、ソースをパッケージ化して計算クラスタにインストールするための一連の手順を実行します。 – primitivist

+0

多分、gitエイリアスは実装が簡単でしょうか? – pedrorijo91

答えて

4

完了スクリプトをリロードする

source ~/.git-completion.bash 
_git_install() 
{ 
    __gitcomp_nl "$(__git_refs)" 
} 

、その後exec bash:私は、次の内容で/etc/bash_completion.dに新しいファイルを作成し、Gitのbashの補完(here)をダウンロードする必要がありました。