.git-completion.bash在macOS Sierra 10.12.6上产生错误


29

我跟着这个过程了 git-completion 根据提供的描述 https://medium.com/@farooqyousuf/autocomplete-git-commands-and-branch-names-in-terminal-on-mac-os-x-4e0beac0388a

第一步是在终端窗口中执行此命令,这基本上是抓取'git-completion.bash'脚本并将其放在您的主目录中。

curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash

现在将此行添加到'〜/ .bash_profile'。这将允许执行git自动完成脚本(如果存在)

if [ -f ~/.git-completion.bash ]; then
  . ~/.git-completion.bash
fi

您现在可以重新启动所有终端窗口,或只刷新您希望使用此脚本的终端窗口。要刷新,请执行以下操作:

source ~/.bash_profile

以下是我在击球时遇到的错误 tab 键入后键 git

unknown option: --list-cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
  [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
  [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
  [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
  <command> [<args>]

您使用的是什么版本的git以及bash_completion要求的版本?
Mark

git version 2.17.1
Rishi Kulshreshtha

我也在Mac和Ubuntu上也一样。 git版本2.4.7和2.17。
wisbucky

Answers:


42

我遇到了完全相同的问题。经过一番挖掘,我终于弄明白根本问题是什么。

他们做了一些重大改变 git-completion.bash 脚本需要git v2.18中的新功能, --list-cmds。问题是没有包管理器已经更新到git v2.18。

大多数说明都说要下载raw.githubusercontent.com/git/git/ master /contrib/completion/git-completion.bash。但这不一定是最好的选择,因为有时你会下载更新的 git-completion.bash 比你的git支持版本。

所以解决方案是下载 git-completion.bash 与您的git版本匹配的版本。然后再次采购。在这种情况下:

https://raw.githubusercontent.com/git/git/v2.17.1/contrib/completion/git-completion.bash

请注意它正在引用 v2.17.1 代替 master。稍后,当您安装git v2.18时,您可以切换回 master, 要么 v2.18 标签。


1
万分感谢!!我正在寻找类似的解决方案,因为我记得 git-completion.bash 早点工作。
Rishi Kulshreshtha

1
范血腥tastic
bhu Boue vidya

2

不要从源头构建它;而是从安装 MacPorts的

要使用自动完成安装git,请发出以下命令:

 $ sudo port install git +bash_completion

关闭并重新打开终端,git完成应该可以正常工作


我试过这个,但没有解决这个问题。它仍然是一样的。
Rishi Kulshreshtha

发出以下命令: sudo find / -type -name "git-completion.bash" 并将结果发布到您的问题。
Allan

2

将git升级到最新版本是最简单的解决方案。 https://git-scm.com/download/mac

之后,请确保按照步骤操作

  1. curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash

  2. 将这个小命令添加到 .bash_profile 文件 if [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi


1

您应该验证您的git版本并确保它已更新至至少1.8。

我有一个旧的版本1.7.11但是没有用,并且得到了同样的错误。


git version 2.17.1
Rishi Kulshreshtha
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.