别名 g='git' 并且 bash 完成仍然有效 [重复]

Posted

技术标签:

【中文标题】别名 g=\'git\' 并且 bash 完成仍然有效 [重复]【英文标题】:alias g='git' and have bash completion still work [duplicate]别名 g='git' 并且 bash 完成仍然有效 [重复] 【发布时间】:2017-01-23 05:36:47 【问题描述】:

对于git 本身的别名,例如。 alias g=git,你会在这里更容易找到答案。

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


我经常输入git,所以我给它起了别名:

alias g='git'

但是,现在我做不到:

g com标签

并让完成呈现给我:

g commit

如何让完成再次运行?


重复分化

equal-first meta answer 建议使用 a 来保留特定案例,并带有指向更通用问题的链接。我在此编辑中添加了指向更通用案例的链接。

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

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

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

解决以下 cmets 中的链接:

@ewcz 的链接被标记为重复,并且已被处理 Remy J 的链接
    这个问题被问(和回答)也是关于 git 子命令 这是一个关于非git 别名的更一般的问题,在这种情况下,这并不是最佳解决方案 这与@ewcz 的链接相同(已解决)

【问题讨论】:

我正在运行GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu) ***.com/questions/342969/… ? 也许这几个链接会帮助你 1.Git autocomplete in bash aliases? 2.How do I get bash completion for command aliases? 3.How do I get bash completion to work with aliases? 4.... 【参考方案1】:

.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 和comments 在关于completion of git subcommand aliases 的问题中)

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于别名 g='git' 并且 bash 完成仍然有效 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

带有分支名称的提交的 Git 别名

markdown 添加别名bash和git别名

git别名可以像bash别名一样扩展吗?

如何将 bash 脚本直接嵌入到 git 别名中

如何在 Windows 的 Git Bash 中设置别名?

sh git的Bash别名