3

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

git checkout fo<tab>

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

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

4

2 回答 2

2

要将 filename-completion 与 ref-completion 添加 -- 作为分隔符:

git checkout foo -- file.c

或者

git checkout -- file.c

.

于 2011-08-26T09:08:18.673 回答
0

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

于 2011-08-26T13:30:56.717 回答