2016-11-19 5 views
2

Я настроил мой .bash_aliases как:Как создать завершение для псевдонима `git flow 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

'ГРС 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" 

Это непроверенный, но я думаю, что это» сделай то, что хочешь. У вас могут возникнуть проблемы с интервалом в [email protected] в псевдониме 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

Как я уже упоминал в своем вопросе: 'source ~/.git-completion.bash' isady in by' ~/.bashrc'. Мне нужно что-то вроде '__git_complete gcf __git_flow_feature_XXXXX'. и я не могу найти 'XXXXX' –

 Смежные вопросы

  • Нет связанных вопросов^_^