例如,在新的ubuntu机器上,我刚刚运行sudo apt-get git,并且在输入时没有完成,例如git check[tab].
我在http://git-scm.com/docs上找不到任何内容,但是这些天我在git包中包含了IIRC完成,我只需要在我的bashrc中输入正确的内容.
Ser*_*eev 154
在大多数发行版上,git完成脚本安装到/etc/bash_completion.d/(或/usr/share/bash-completion/completions/git)安装git时,无需转到github.您只需要使用它 - 将此行添加到您的.bashrc:
source /etc/bash_completion.d/git
# or
source /usr/share/bash-completion/completions/git
在某些版本的Ubuntu中,默认情况下可能会破坏git autocomplete,通过运行此命令重新安装应修复它:
sudo apt-get install git-core bash-completion
您可以使用Homebrew或MacPorts安装git完成.
if $BASH_VERSION> 4 :( brew install bash-completion@2更新版本)特别注意你有哪个版本的bash作为MacOS默认随附3.2.57(1)-release.
添加到.bash_profile:
  if [ -f /usr/local/share/bash-completion/bash_completion ]; then
    . /usr/local/share/bash-completion/bash_completion
  fi
对于旧版本的bash: brew install bash-completion
添加到.bash_profile:
[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion
sudo port install git +bash_completion
然后将此添加到您的.bash_profile:
if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
fi
本指南中的更多信息:安装Bash git完成
请注意,在所有情况下,您都需要创建一个新shell(打开一个新的终端选项卡/窗口)以使更改生效.
jos*_*tik 53
我有同样的问题,按照以下步骤:
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
然后将以下行添加到您的.bash_profile(通常在您的主文件夹下)
if [ -f ~/.git-completion.bash ]; then
  . ~/.git-completion.bash
fi
来源:http://code-worrier.com/blog/autocomplete-git/
wis*_*cky 33
您看到的大多数说明都会告诉您下载
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
和你的bash启动脚本中的源代码一样.bashrc.
但是有一个问题,因为它引用了master分支,这是最新版本的分支git-completion.bash.问题是,有时它会破坏,因为它与您安装的git版本不兼容.
实际上,现在它将会中断,因为master分支机构git-completion.bash具有需要git v2.18的新功能,而这些功能尚未更新到包管理器和安装程序.你会收到一个错误unknown option: --list-cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config
因此,最安全的解决方案是引用与您安装的git相匹配的版本/标记.例如:
https://raw.githubusercontent.com/git/git/v2.17.1/contrib/completion/git-completion.bash
请注意,它v2.17.在URL中有一个而不是master.然后,当然,请确保在bash启动脚本中提供源代码.
And*_*ann 15
git-core和bash-completionsudo apt-get install -y git-core bash-completion
对于当前会话使用
source /usr/share/bash-completion/completions/git
让它始终在所有会话中使用
echo "source /usr/share/bash-completion/completions/git" >> ~/.bashrc
Fel*_*peC 13
只需在您的~/.bashrc:
source /usr/share/bash-completion/completions/git
其他答案告诉您 install bash-completion,您不需要这样做,但如果您这样做,则无需直接获取完成。你做一个或另一个,而不是两个。
一个更通用的解决方案是按照 bash-completion 项目的建议查询系统位置:
source "$(pkg-config --variable=completionsdir bash-completion)"/git
似乎许多人来这里是为了弄清楚如何在他们的操作系统上启用制表符补全。从一开始就需要注意,git tab 补全是shell相关的,而不是操作系统相关的。如今,大多数 shell 都可以在各种基于 Unix 的操作系统上运行,例如bash、zsh或Fish。少数几个可以跨所有主要操作系统运行,例如Powershell。
如果您不确定您使用的是哪个 Unix shell,请尝试echo $SHELL或查看此问题。
在大多数 Unix 发行版上,git tab 补全是开箱即用的,安装到/etc/bash_completion.d/或/usr/share/bash-completion/completions/git. 您在这里可能是因为它不起作用,这可能是因为未使用完成脚本。尝试将此行添加到您的.bashrc:
source /etc/bash_completion.d/git
# or
source /usr/share/bash-completion/completions/git
然后在新终端中再次尝试制表符补全。
如果 git autocomplete 损坏或未安装,通过运行以下命令重新安装应该可以修复它:
sudo apt-get install git-core bash-completion
再次在新终端中尝试制表符补全。
更多详细信息,请参阅 git 书籍附录 A:其他环境中的 Git - Git in Bash
如果您在 macOS 中使用bash shell,则可以使用 Homebrew 或 MacPorts 安装 git Completion。有关如何执行此操作的信息,请参阅@sergey-evstifeev 的答案。
MacOS 和一些 Linux 发行版使用 Zsh 作为默认终端 shell。要在 Zsh 中启用 git tab 自动补全,请添加到您的.zshrc:
autoload -Uz compinit && compinit
然后在新终端中再次尝试制表符补全。
可选:还可以考虑使用 git info 为主题添加Oh My Zsh插件。
更多详情请参见git书籍附录A:其他环境中的Git - Git in Zsh
Windows 上的 Tab 自动补全可以使用posh-git添加到 Powershell 中。(请注意,命令提示符不支持此操作)。
要在 Powershell 中安装 posh-git,
脚本执行策略必须设置为
RemoteSigned或Unrestricted。通过执行检查脚本执行策略设置Get-ExecutionPolicy。如果策略未设置为两个必需值之一,请以管理员身份运行 PowerShell 并执行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Confirm.
然后使用 PowerShellGet 安装:
PowerShellGet\Install-Module posh-git -Scope CurrentUser -Force
然后在新终端中再次尝试制表符补全。
有关 Chocolatey、Scoop 或手动安装说明,请参阅posh-git GitHub 页面。
可选:还可以考虑升级到Powershell 7,它具有用于智能选项卡完成的命令行 IntelliSense。
更多详情请参见git书籍附录A:其他环境中的Git - Powershell中的Git
在当前针对 macOS 发布的所有答案中,jmt 仅在非常简短的评论中提到了这一点......
如果您已经安装了 Xcode 开发人员工具,则无需下载任何新内容。
相反,您只需找到已经存在的git-completion.bash文件并将其来源到您的.bashrc. 检查以下目录:
/Applications/Xcode.app/Contents/Developer/usr/share/git-core/Library/Developer/CommandLineTools/usr/share/git-core如果做不到这一点,git 本身也许可以帮助你。当我按如下方式运行时git config,git 报告一个来自gitconfig与 my 位于同一目录中的文件的设置git-completion.bash:
$ git config --show-origin --list
...
file:/Applications/Xcode.app/Contents/Developer/usr/share/git-core/gitconfig    credential.helper=osxkeychain
...
或者你总是可以暴力搜索你的机器并喝点咖啡:
$ find / -type f -name git-completion.bash 2>/dev/null
因此,我的 插入内容如下~/.bashrc:
$ git config --show-origin --list
...
file:/Applications/Xcode.app/Contents/Developer/usr/share/git-core/gitconfig    credential.helper=osxkeychain
...
请注意,这也会获取 git 提示字符串脚本,因为它位于同一目录中。
(在 macOS Catalina 中测试)
在我的 ubuntu 上,这里安装了一个文件:
source /etc/bash_completion.d/git-prompt
您可以按照链接进入/usr/lib/git-core文件夹。您可以在那里找到说明,如何设置 PS1 或使用__git_ps1
| 归档时间: | 
 | 
| 查看次数: | 64432 次 | 
| 最近记录: |