例如,在一台新的ubuntu机器上,我刚刚运行了sudo apt-get git,在输入例如git check[tab]时没有完成。

我在http://git-scm.com/docs上没有找到任何东西,但IIRC完成是包含在这些天的git包中,我只需要在我的bashrc中正确的条目。


当前回答

Arch Linux

/usr/share/git/completion/git-completion来源。在其中一个Bash启动文件中。

例如:

# ~/.bashrc

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

你可以在/usr/share/bash-completion/completions/git等其他位置找到该脚本,但这些脚本对我不起作用。

其他回答

只需在.bashrc中输入下面的内容,然后重新启动终端。导航到Git repo以查看提示符中的路径。

PS1='\[\033[0;32m\]\[\033[0m\033[0;32m\]\u\[\033[0;36m\] @ \[\033[0;36m\]\h \w\[\033[0;32m\]$(__git_ps1)\n\[\033[0;32m\]└─\[\033[0m\033[0;32m\] \$\[\033[0m\033[0;32m\] ▶\[\033[0m\] '

可能对某人有帮助:——

下载完。git-completion。Bash从下面的链接,

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

并试图使用__git_ps1函数,我得到的错误为——

 -bash: __git_ps1: command not found

显然,我们需要从master中单独下载脚本来使这个命令工作,因为__git_ps1是在git-prompt.sh中定义的。类似于下载。git-completion。Bash,获取git-prompt.sh:

curl -L https://raw.github.com/git/git/master/contrib/completion/git-prompt.sh > ~/.bash_git

然后在.bash_profile中添加以下内容

source ~/.bash_git
if [ -f ~/.git-completion.bash ]; then
  . ~/.git-completion.bash
export PS1='\W$(__git_ps1 "[%s]")>'
fi

~ / .bash来源。Git会执行下载的文件

export PS1='\W$(__git_ps1 "[%s]")命令将在当前工作目录(如果它是git存储库)之后追加签出分支名称。

所以它看起来像:-

dir_Name[branch_name],其中dir_Name是工作目录名称,branch_name将是您当前工作的分支名称。

请注意——__git_ps1是区分大小写的。

我也有同样的问题,遵循以下步骤:

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/

在Github的Git项目中,他们提供了一个bash文件来自动完成Git命令。

您应该将其下载到主目录,并强制bash运行它。这只是简单的两个步骤,并在接下来的博客文章中完美地解释(一步一步地)。

代码担忧者博客:autocomplete-git/

我已经在mac上测试过了,它应该也能在其他系统上工作。您可以将相同的方法应用于其他操作系统。

Mac M1

对于那些使用Mac M1环境的用户,我可以通过自制软件进行安装:

酿造安装bash-completion

然后添加到我的~/。Bash_profile或~/。Bashrc(不管你用什么):

[[ -r "/opt/homebrew/Cellar/bash-completion/1.3_3/etc/profile.d/bash_completion.sh" ]] && . "/opt/homebrew/Cellar/bash-completion/1.3_3/etc/profile.d/bash_completion.sh"

您可能需要更新版本号(1.3_3)。你只需要在那个目录中查找即可。我很想知道有没有更好的办法。