2016-09-15 69 views
0

对于git本身的别名,例如。 alias g=git,你会在这里更容易地找到你的答案。别名g ='git'并且bash完成仍然有效

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


I型git过于频繁,所以我就别名:

alias g='git' 

不过,现在我不能做:

g com标签

和有完成给我:

g commit

我该如何完成再次运行?


重复分化

equal-first meta answer提出了一个链接到更一般的问题保持特定的情况下。我在此编辑中添加了更一般情况下的链接。

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

这个问题是关于其别名是git本身的具体情况。

在标记为“重复”的情况下,git-自己的情况只在第4个显示的答案中以及对列出的第一个答案的评论中回答。阅读第二部分难题(源文件/usr/share/bash-completion/completions/git)需要阅读另一条评论才能通过该方法使其工作。

解决在下面的评论链接:

  • @ ewcz的链接是明显的重复,并已得到解决
  • 雷米J的链接
    1. 这是问题的提出(并回答)也是约git子命令
    2. 这是一个关于非git别名的更通用的问题,它不会接近此ca上的最佳解决方案SE
    3. 这是一样的@ ewcz的链接(已经解决)
+0

我跑'GNU bash,版本4.3.11(1) - 发布(x86_64-pc-linux-gnu)' –

+5

http://stackoverflow.com/questions/342969/how-do-i-get-bash-completion-to-工作与别名? – ewcz

+0

也许这几个链接将帮助你1. [bash别名中的Git自动完成?](http://stackoverflow.com/a/9869478/6683985)2. [如何获得命令别名的bash完成?](http ://unix.stackexchange.com/a/4220/184872)3. [如何让bash完成使用别名?](http://stackoverflow.com/a/15009611/6683985)4. ... –

回答

6

在你.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's answer和问题有关completion of git subcommand aliasescomments

1

添加在你的.bashrc文件如下:

source /usr/share/bash-completion/completions/git 
complete -o default -o nospace -F _git g