bash / git中分支和文件完成之间的冲突

时间:2011-08-26 08:58:39

标签: git bash tab-completion bash-completion

我正在使用git的bash完成脚本。但是,有些情况下它不起作用。假设我有一个分支foo-branch和一个文件foo-file。如果我要删除文件中的更改,我会经常这样做:

git checkout fo<tab>

立即完成foo-branch。通常,如果有多个完成选项,我会收到一个铃声,另一个选项卡会显示选项。在这种情况下,有没有办法让完成工作像这样?或者git完成总是优先于文件名完成吗?

编辑:我已经浏览了bash手册页,找到-o plusdirs,我将其添加到complete指令中。这有效;我将不得不尝试一段时间,看它是否不会导致不带文件名参数的命令出现问题。

2 个答案:

答案 0 :(得分:2)

将文件名完成与ref-completion add分隔 - 作为分隔符:

git checkout foo -- file.c

git checkout -- file.c

答案 1 :(得分:0)

这可能看起来很简单,但我通过不使分支名称发生冲突来避免这样的问题。