50

我有 Git(版本 1.7.2.5)bash 完成在我的 Debian 挤压(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 带到另一台机器上?

4

10 回答 10

58

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

在我.bashrc的情况下,它完成了:

for file in /etc/bash_completion.d/* ; do
    source "$file"
done
于 2012-06-23T22:41:03.527 回答
57

将以下行放入您的~/.bashrc

if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

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

于 2012-07-01T15:38:38.283 回答
35

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

apt-get install bash-completion
于 2016-11-10T19:55:58.887 回答
15

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

source /etc/bash_completion.d/git

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

另请参阅:“Pro Git”-> 2.7 Git 基础知识 - 提示和技巧 ->自动完成

于 2013-01-31T20:56:47.920 回答
3

对于Manjaro和其他基于 Arch 的发行版。我知道这是关于 debian,但大多数事情是相同的,但有时不是。无论您使用什么操作系统,最终都会出现在这里。

在您的~/.bashrc添加中:

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

然后在终端

$ source ~/.bashrc
于 2019-11-27T12:59:02.747 回答
3

对于 Ubuntu/Debian

通过以下命令安装 Git 和 bash-completion:

sudo apt-get install git bash-completion

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

于 2019-12-25T17:31:21.383 回答
1

使用 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

于 2016-05-21T08:49:39.050 回答
1

最新版本的 Ubuntu(在 20.04 上观察)似乎将完成分成多个路径。对于 Ubuntu 20.04,我必须将以下内容添加到我的.bashrc(取自 中的默认 bashrc /etc/bash.bashrc):

if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi
于 2020-11-20T19:49:01.083 回答
1

获取 git 自动完成脚本:

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

在此之后获取您的 .bash_profile ,例如:

. ~/.bash_profile
于 2021-10-19T07:53:33.530 回答
0

有时 git auto-complete 会消失,因为您不小心删除了 ~/.bashrc 文件。检查 bashrc 文件是否在您的主目录中。如果没有,您可以随时从以下位置复制它:

/etc/skel/.bashrc
于 2017-05-09T07:18:44.427 回答