如果我这样做:
alias g='git'
我失去了所有的完成规则(例如,当我在输入后按 TAB 键时,分支和远程不再自动完成g push o
)。
答案1
最新的 bash-completion 上游对一些内容进行了移动和重命名。现在为:
source /usr/share/bash-completion/completions/git
__git_complete g __git_main
在较新版本的 Ubuntu(例如 14.04,还有 Fedora 22+)中,当您遇到以下问题时请使用以下命令:
completion: function `_git' not found
在完成过程中。
答案2
从 复制并适当修改/etc/bash_completion.d/git
,将以下几行添加到您的~/.bashrc
:
complete -o bashdefault -o default -o nospace -F _git g 2>/dev/null \
|| complete -o default -o nospace -F _git g
答案3
在~/.bashrc
:
alias g='git'
source /usr/share/bash-completion/completions/git
complete -o default -o nospace -F _git g
通过http://29a.ch/2013/8/9/fixing-bash-autocomplete-on-ubuntu-13-04
答案4
这更新了执行此操作的方法(对我来说,完整版不起作用):
cd
- 切换到你的主目录wget https://raw.github.com/git/git/master/contrib/completion/git-completion.bash
- 添加
source ~/git-completion.bash
到你的 .bashrc 文件(如果你没有这个文件,请在主文件夹中创建一个,bash 将自动查找它) - 添加
alias g='git'
到您的.bashrc 文件。 - 开始新的会话或使用以下方式获取更改
source ~/.bashrc