我尝试使用 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% 同步。