Git bash 自动完成功能并不适用于所有 -- 参数

Git bash 自动完成功能并不适用于所有 -- 参数

我尝试使用 Tab 自动完成git reflog --<tab>,但无法获取参数列表。

然而,对于 来说,同样的道理git stash --<tab>

git stash --
--all                 --keep-index          --patch 
--include-untracked   --no-keep-index       --quiet 

为什么我无法自动完成reflog命令?这是我意识到 Tab 自动完成功能无法使用的唯一原因,但可能还有其他原因。

答案1

您在错误的地方期待自动完成。这是来自的参考man git-reflog

SYNOPSIS
       git reflog <subcommand> <options>

DESCRIPTION
       The command takes various subcommands, and different options depending on the subcommand:

           git reflog [show] [log-options] [<ref>]
           git reflog expire [--expire=<time>] [--expire-unreachable=<time>]
                   [--rewrite] [--updateref] [--stale-fix]
                   [--dry-run] [--verbose] [--all | <refs>...]
           git reflog delete [--rewrite] [--updateref]
                   [--dry-run] [--verbose] ref@{specifier}...
           git reflog exists <ref>

正如那里所清楚的,您需要在 reflog 之后立即提及子命令(show、expire 或 delete),然后使用选项。

答案2

完成似乎来自文件/usr/share/bash-completion/completions/git,如果你搜索,git_stash你会看到选项已被定义,但是如果你搜索git_reflog提供的完成帮助就会少得多。

所以我认为答案是人们觉得帮助不那么重要,而且没有努力提供帮助。

此外,完成情况有可能无法与计划 100% 同步。

相关内容