例如,在一台新的ubuntu机器上,我刚刚运行了sudo apt-get git,在输入例如git check[tab]时没有完成。
我在http://git-scm.com/docs上没有找到任何东西,但IIRC完成是包含在这些天的git包中,我只需要在我的bashrc中正确的条目。
例如,在一台新的ubuntu机器上,我刚刚运行了sudo apt-get git,在输入例如git check[tab]时没有完成。
我在http://git-scm.com/docs上没有找到任何东西,但IIRC完成是包含在这些天的git包中,我只需要在我的bashrc中正确的条目。
当前回答
你看到的大多数说明都会告诉你如何下载
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
在你的bash启动脚本中,比如。bashrc。
但这有一个问题,因为它引用的是主分支,这是git-completion.bash的最新版本。问题是有时它会崩溃,因为它与你安装的git版本不兼容。
事实上,现在它将被打破,因为主分支的git-completion。Bash有需要git v2.18的新特性,包管理器和安装程序还没有更新到git v2.18。你会得到一个错误未知选项:——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版本。而不是master。然后,当然,要确保在bash启动脚本中提供源代码。
其他回答
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)。你只需要在那个目录中查找即可。我很想知道有没有更好的办法。
Ubuntu 14.10
安装git-core和bash-completion
sudo apt-get install -y git-core bash-completion
对于当前会话使用情况 源/usr/share/bash-completion /完成/ git 在所有会议上都开着 Echo "source /usr/share/bash-completion/completion /git" >> ~/.bashrc
可能对某人有帮助:——
下载完。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是区分大小写的。
在Ubuntu 22.04中,只需在.bashrc或.zshrc后面添加这一行即可
source /etc/bash_completion.d/git-prompt
只需在~/.bashrc中这样做:
source /usr/share/bash-completion/completions/git
其他答案告诉你安装bash-completion,你不需要这样做,但如果你这样做,那么就不需要直接源完成。你只能做其中一个,不能两个都做。
一个更通用的解决方案是查询bash-completion项目推荐的系统位置:
source "$(pkg-config --variable=completionsdir bash-completion)"/git