如何为Git命令设置自动完成功能?

red*_*hka 39 linux git bash debian

我有Git(版本1.7.2.5)bash compeletion正在处理我的Debian squeeze(6.0).Git安装了aptitude,我正在使用标准的debian bash,它支持命令行自动完成.

现在,我刚刚在另一台机器(Lenny/Debian 5.0)上安装了Git(1.5.6.5),并且没有自动完成功能.

  1. 为什么Git自动完成不能在第二台机器上运行?我该如何诊断?

  2. 什么使我的机器完成工作?我已经查找了该文件,git-completion.bash但它似乎不在我的机器上.Git如何完成工作?

  3. 如何将git完成到另一台机器上?

小智 45

把以下几行放在你的 ~/.bashrc

if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi
Run Code Online (Sandbox Code Playgroud)

脚本/程序/etc/bash_completion已经包含脚本,/etc/bash_completion.d并且还定义了包含的脚本所需的一些功能.

  • 在我的Fedora 20系统中,`bash_completion`位于`/ usr/share/bash-completion /`中.运行`updatedb && locate bash_completion`可以帮助您找到它. (2认同)

Pio*_*zmo 43

你需要source /etc/bash_completion.d/git启用git auto-completion.

在我.bashrc的完成:

for file in /etc/bash_completion.d/* ; do
    source "$file"
done
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说不起作用,因为`/ etc/bash_completion.d /`中的一些完成脚本使用了`bash_completion`中定义的辅助函数. (2认同)

Qi *_*Luo 19

如果丢失,您需要安装此软件包.然后注销并登录.

apt-get install bash-completion
Run Code Online (Sandbox Code Playgroud)

  • 安装后执行`source / etc / bash_completion` (4认同)

aut*_*tix 13

在Debian上激活Git的bash自动完成的最短方法是添加

source /etc/bash_completion.d/git
Run Code Online (Sandbox Code Playgroud)

~/.bashrc(并重启终端).

另请参见此处:"Pro Git" - > 2.7 Git Basics - 提示和技巧 - > 自动完成.


Noo*_*oor 5

获取 git 自动补全脚本:

curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
Run Code Online (Sandbox Code Playgroud)

添加到主目录中的 .bash_profile:

if [ -f ~/.git-completion.bash ]; then
  . ~/.git-completion.bash
fi
Run Code Online (Sandbox Code Playgroud)

在此之后获取您的 .bash_profile,如下所示:

. ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)