尝试自动完成“git stash drop”会产生错误输出

psd*_*sdi 6 git ubuntu

每当我输入后按 Tab 时git stash drop,都会收到以下错误消息(连续输出三次):

_arguments:comparguments:325: invalid argument: _git-notes
_git-stash:88: command not found: (-q --quiet)-q[suppress all output]
Run Code Online (Sandbox Code Playgroud)

实际的存储删除仍然有效,但在选择之前必须先列出我的存储是很麻烦的。

我尝试过卸载并重新安装 git,但没有效果。

如果有帮助的话,我最近从 19.10 升级到 Ubuntu 20.04,我不记得以前的操作系统版本中曾经出现过这个错误。

BT6*_*643 3

我在这里找到了一个临时解决方案(直到 Ubuntu 获得带有修复程序的更高版本的 zsh):

https://github.com/ohmyzsh/ohmyzsh/issues/9264

这个github问题引用了修复它的zsh提交:https://github.com/zsh-users/zsh/commit/754658aff38e1bdf487c58bec6174cbecd019d11

所以 - 从这些地方你可以这样做来修复它:

  1. 运行此命令以查找您需要编辑的文件:ls -l ${^fpath}/_git(N)
  2. 编辑文件,对我来说是:vim /usr/share/zsh/functions/Completion/Unix/_git
    • 上线1812
      • 更改从_arguments -S $endopt \_git-notes_arguments -S $endopt \
  3. 关闭并重新打开您的 zsh 终端。

gstd命令现在应该可以正常工作,不会收到错误。我几个月前就这样做了,从那以后一直很好。必须在另一台机器上执行此操作,这就是我最终再次寻找此解决方案的原因。我想我会在这里发帖来帮助自己(和其他人)的未来!

  • 在 macOS 上,您必须先将“/usr/share/zsh/5.8/functions/_git”复制到“/usr/local/share/zsh/site-functions”,然后再进行更改,因为 /usr/share 受到保护。 (2认同)