2016-11-19 66 views
2

我已經配置我的.bash_aliases,如:如何爲`git flow feature checkout`別名創建完成?

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 

我應該怎麼做,checkout將被選中自動寫我gcf + a TAB

+0

'GCF checkout'是沒有意義的,因爲它擴展爲'混帳流功能結賬checkout' – Leon

+0

@Leon我知道,我不希望這樣的行爲 –

回答

3

我想一個解決方案migh牛逼的謊言與custom Git alias completion

如果使用形式!f() { ... }; f複雜的別名,你可以使用空 命令:作爲第一個命令,在函數體申報所需 完成風格。例如!f() { : git commit ; ... }; f將 告訴完成使用提交完成。這也適用於形式爲!sh -c '...'的別名 。例如,!sh -c ': git commit ; ... '

所以你首先需要建立一個Git別名您.gitconfig

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

,然後將其在.bash_aliases鏈接:

alias gcf="git ffc" 

這是未經測試,但我認爲這是你會做你想做的。根據使用情況,可能會修復的ffc別名中的[email protected]中的間距可能會有些問題。

+0

這表明在當前目錄 –

+0

哎呦文件,忘了提[此](https://github.com/git/git/blob/master/contrib/completion/git-completion.bash#L20-L24) - 我認爲這隻適用於源'git-completion.bash'之後可能最好在你的'bashrc'中做。如果LMK能爲你解決這個問題,那麼我會用它編輯答案。 – Pockets

+0

正如我在我的問題中提到的那樣:'〜/ .bashrc'已經包含'source〜/ .git-completion.bash'。我需要'__git_complete gcf __git_flow_feature_XXXXX'。我找不到'XXXXX' –

相關問題