2

私は.bash_aliases好きなものを設定しました:

alias gc="git checkout"
alias gcf="git flow feature checkout"
source ~/.git-completion.bash
__git_complete gc  _git_checkout
source ~/.git-flow-completion.bash
__git_complete gcf __git_flow_feature

しかし、完了しようとするcheckoutと、ブランチを選択する必要があります。

$ gcf 
checkout   diff       help       publish    rebase     track      
delete     finish     list       pull       start      

$ gcf checkout a
a_branch1 a_branch2

+acheckoutを入力すると自動的に選択される何をすればよいですかgcfTAB

4

1 に答える 1

3

解決策の 1 つは、カスタム Git エイリアスの補完にあると思います。

form の複雑なエイリアスを使用する!f() { ... }; f場合、null コマンド:を関数本体の最初のコマンドとして使用して、目的の補完スタイルを宣言できます。たとえば!f() { : git commit ; ... }; f、コミット完了を使用するように完了に指示します。これは、 form のエイリアスでも機能します!sh -c '...'。たとえば、!sh -c ': git commit ; ... '.

したがって、最初に Git エイリアスを設定する必要があります.gitconfig

[alias]
  ffc = "!ffc() { : git checkout ; git flow feature checkout $@ ; } && ffc"

そしてそれをリンクし.bash_aliasesます:

alias gcf="git ffc"

それはテストされていませんが、あなたが望むことをすると思います。ユースケースに応じて修正される可能性$@のあるffcエイリアスのスペーシングに問題がある場合があります。\"$@\"

于 2016-11-28T09:07:00.220 に答える