2

对于git自身的别名,例如。alias g=git,您将在此处更轻松地找到答案。

对于git子命令别名,例如。alias gco = "git checkout",看这里


我打字git太频繁了,所以我给它起了别名:

alias g='git'

但是,现在我不能这样做:

g comtab

并让我完成:

g commit

如何让完成再次运行?


重复分化

这个同等优先的元答案建议将特定案例与更通用问题的链接一起保留。我在此编辑中添加了指向更通用案例的链接。

断言的重复问题更通用 - 但主要是关于git子命令的别名,而不是 git 本身的别名。

这个问题是关于别名本身的特定情况git

在标记的副本中,git仅在显示的第 4 个答案中以及对第一个列出的答案的评论中回答了 -itself 案例。拼图的第二部分(来源/usr/share/bash-completion/completions/git)需要阅读另一条评论才能通过该方法工作。

解决以下评论中的链接:

  • @ewcz 的链接是被标记的重复,并且已经被解决
  • Remy J 的链接
    1. 这是所问(并已回答)的问题,也是关于git子命令的
    2. 这是一个关于非别名的更通用的问题git,在这种情况下,它并不接近最佳解决方案
    3. 这与@ewcz 的链接相同(已解决)
4

2 回答 2

9

在你的末尾.bashrc,添加:

_xfunc git __git_complete g _git

如果您看到bash: _xfunc: command not found,请使用较长的形式:

source /usr/share/bash-completion/completions/git
__git_complete g _git

重新加载 bash

exec bash

(这个答案的灵感来自于kub1x 的答案和关于完成 git 子命令别名的问题中的评论

于 2016-09-15T09:09:57.880 回答
4

在 .bashrc 文件中添加以下内容:

source /usr/share/bash-completion/completions/git
complete -o default -o nospace -F _git g
于 2016-09-15T10:46:43.840 回答