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

Paw*_*cki 29 command-line bash git auto-completion

如果我这样做:

alias g='git'
Run Code Online (Sandbox Code Playgroud)

我取消了所有完成规则(例如,当我在键入后点击 TAB 时,分支和遥控器不再自动完成g push o)。

lza*_*zap 24

最新的 bash-completion 上游移动并重命名了一些东西。下雪了:

source /usr/share/bash-completion/completions/git
__git_complete g __git_main
Run Code Online (Sandbox Code Playgroud)

当您遇到以下情况时,请在最新版本的 Ubuntu(例如 14.04,还有 Fedora 22+)中使用它:

completion: function `_git' not found
Run Code Online (Sandbox Code Playgroud)

在完成过程中。

  • 似乎这是这里唯一正确的答案。 (2认同)
  • @MaxWallace - 当您在 .gitconfig(例如 gc = checkout)中为特定 git 方法设置别名时,无需为它们显式配置完成。 (2认同)

enz*_*tib 21

适时地从 复制和修改/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
Run Code Online (Sandbox Code Playgroud)


hna*_*rat 7

~/.bashrc

alias g='git'
source /usr/share/bash-completion/completions/git
complete -o default -o nospace -F _git g
Run Code Online (Sandbox Code Playgroud)

通过http://29a.ch/2013/8/9/fixing-bash-autocomplete-on-ubuntu-13-04