我正在使用git的bash完成脚本。但是,有些情况下它不起作用。假设我有一个分支foo-branch和一个文件foo-file。如果我要删除文件中的更改,我会经常这样做:
git checkout fo<tab>
立即完成foo-branch。通常,如果有多个完成选项,我会收到一个铃声,另一个选项卡会显示选项。在这种情况下,有没有办法让完成工作像这样?或者git完成总是优先于文件名完成吗?
编辑:我已经浏览了bash手册页,找到-o plusdirs
,我将其添加到complete
指令中。这有效;我将不得不尝试一段时间,看它是否不会导致不带文件名参数的命令出现问题。
答案 0 :(得分:2)
将文件名完成与ref-completion add分隔 - 作为分隔符:
git checkout foo -- file.c
或
git checkout -- file.c
答案 1 :(得分:0)
这可能看起来很简单,但我通过不使分支名称发生冲突来避免这样的问题。