如何将“git”别名为“g”以便保留 bash 完成规则?

如何将“git”别名为“g”以便保留 bash 完成规则?

如果我这样做:

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

更新了执行此操作的方法(对我来说,完整版不起作用):

  1. cd- 切换到你的主目录
  2. wget https://raw.github.com/git/git/master/contrib/completion/git-completion.bash
  3. 添加source ~/git-completion.bash到你的 .bashrc 文件(如果你没有这个文件,请在主文件夹中创建一个,bash 将自动查找它)
  4. 添加alias g='git'到您的.bashrc 文件。
  5. 开始新的会话或使用以下方式获取更改source ~/.bashrc

相关内容