git - 输入 git stash show stash@{1} 时出现自动完成问题

标签 git autocomplete

首先我输入 git stash show

然后输入stab,显示git stash show stash@{,到此为止一切正常。

但是我输入1tab后,变成了git stash show stashstash@{1},显然是错误的。

我认为.git-completion.bash中的以下代码可能有一些错误,但我很难阅读。

_git_stash ()
{
    local save_opts='--keep-index --no-keep-index --quiet --patch'
    local subcommands='save list show apply clear drop pop create branch'
    local subcommand="$(__git_find_on_cmdline "$subcommands")"
    if [ -z "$subcommand" ]; then
        case "$cur" in
        --*)
            __gitcomp "$save_opts"
            ;;
        *)
            if [ -z "$(__git_find_on_cmdline "$save_opts")" ]; then
                __gitcomp "$subcommands"
            else
                COMPREPLY=()
            fi
            ;;
        esac
    else
        case "$subcommand,$cur" in
        save,--*)
            __gitcomp "$save_opts"
            ;;
        apply,--*|pop,--*)
            __gitcomp "--index --quiet"
            ;;
        show,--*|drop,--*|branch,--*)
            COMPREPLY=()
            ;;
        show,*|apply,*|drop,*|pop,*|branch,*)
            __gitcomp_nl "$(git --git-dir="$(__gitdir)" stash list \                                                               
                    | sed -n -e 's/:.*//p')"
            ;;
        *)
            COMPREPLY=()
            ;;
        esac
    fi
}

有人知道怎么解决吗?

Bash 版本:GNU bash,版本 4.2.37(2)-release (i386-apple-darwin12.0.0)。

git 版本:1.8.0.3

全部来源:https://gist.github.com/pktangyue/5477924

最佳答案

当我手动下载过时的 git 完成脚本时,我遇到了同样的问题。我能够通过使用自制软件获取最新版本来修复它。

brew install git bash-completion

删除您在“.profile”中可能拥有的旧链接。替换为使用来自 brew 的脚本

if [ -f $(brew --prefix)/etc/bash_completion ]; then
    . $(brew --prefix)/etc/bash_completion
fi

现在,当我点击时,它会正确完成。 (git stash show stash@{0 .. 给出 git stash show stash@{0})

关于git - 输入 git stash show stash@{1} 时出现自动完成问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16261472/

相关文章:

ios - 使用单个 git 存储库管理项目和由该项目创建的动态框架

git - svn2git 忽略 "--username"-参数

Netbeans SCSS 文件自动完成就像 CSS 文件一样

javascript - 使用自动完成 jquery 和 Odoo rpc 调用输入不显示建议

git - 使用 git 但推到 mercurial?

两个本地存储库之间的git推送错误

git - Jenkins + 混帐 : Only build if PR introduced changes in subdirectory

jquery - Solr JQuery 自动完成不会自动完成

javascript - 未捕获的类型错误 : Cannot read property 'length' of undefined JQUERY autocomplete

javascript - 自动完成:以不同的颜色显示未完成的字符