Конфликт между веткой и завершением файла в bash / git - PullRequest
3 голосов
/ 26 августа 2011

Я использую скрипт завершения bash для git.Однако бывают ситуации, когда это не работает.Скажем, у меня есть ветка foo-branch и файл foo-file.Если у меня есть изменения в файле, которые я хочу выбросить, я часто делаю:

git checkout fo<tab>

Это немедленно завершается для foo-branch.Обычно, если есть несколько вариантов завершения, я получаю звонок, и другая вкладка покажет мне параметры.Есть ли способ заставить завершение работать так же и в этом случае?Или завершение git всегда имеет приоритет над завершением имени файла?

Редактировать : Я пробежался по man-странице bash и нашел -o plusdirs, который добавил в complete директива.Это работает;Мне придется немного попробовать, чтобы убедиться, что это не вызывает проблем с командами, которые не принимают аргумент имени файла.

Ответы [ 2 ]

2 голосов
/ 26 августа 2011

Чтобы отделить завершение имени файла от реф-завершения добавить - в качестве разделителя:

git checkout foo -- file.c

или

git checkout -- file.c

.

0 голосов
/ 26 августа 2011

Это может показаться простым, но я избегаю подобных проблем, не делая имена ветвей, которые конфликтуют.

...