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

时间:2012-06-23 22:21:48

标签: 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 complete带到另一台机器上?

9 个答案:

答案 0 :(得分:43)

~/.bashrc

中添加以下内容
if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

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

答案 1 :(得分:39)

您需要source /etc/bash_completion.d/git启用git自动完成功能。

在我的.bashrc中完成了:

for file in /etc/bash_completion.d/* ; do
    source "$file"
done

答案 2 :(得分:12)

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

source /etc/bash_completion.d/git

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

另见:“Pro Git” - > 2.7 Git Basics - 提示和技巧 - > Auto-Completion

答案 3 :(得分:12)

如果缺少,您需要安装此软件包。然后注销并登录。

apt-get install bash-completion

答案 4 :(得分:0)

使用Notepad ++编辑〜/ .bashrc文件。 将行放在脚本的底部,在行的开头加上#。保存文件。例如:  #source C:\ cygwin64 / etc / bash_completion.d / git

不要忘记将整个文件路径放在'source'之后和'/ etc /'之前。例如,包含'etc'文件夹的cygwin64文件夹在我的c盘中,所以我的文件路径是c :\ cygwin64 / etc因此我在bashrc文件中包含的行是:

# source c:\cygwin64/etc/bash_completion.d/git

保存bashrc文件。打开Cygwin终端......轰!现在是时候了。 然后我输入以下命令,它工作。 git clone git:\/\/github.com/magnumripper/JohnTheRipper -b bleeding-jumbo JtR-Bleeding

答案 5 :(得分:0)

有时git自动完成消失,因为你不小心删除了〜/ .bashrc文件。检查主目录中是否有bashrc文件。如果没有,您可以随时复制:

/etc/skel/.bashrc

答案 6 :(得分:0)

用于 Manjaro 和其他基于Arch的发行版。我知道这是关于debian的,但是大多数事情都是一样的,但有时不是。无论您使用哪种操作系统,都将在这里结束。

在您的~/.bashrc中添加:

source /usr/share/git/completion/git-completion.bash

然后在终端

$ source ~/.bashrc

答案 7 :(得分:0)

对于Ubuntu / Debian

Install Git and bash-completion: sudo apt-get install git bash-completion

我认为您不需要做任何其他事情。

答案 8 :(得分:0)

Ubuntu的最新版本(在20.04中观察到)似乎已将补全拆分为多个路径。对于Ubuntu 20.04,我必须在我的gbm()中添加以下内容(取自.bashrc中的默认bashrc):

/etc/bash.bashrc