【发布时间】:2012-07-13 02:21:02
【问题描述】:
如果我运行诸如git checkout 之类的常规 git 命令,我会在按 Tab 键时获得有用的分支名称自动补全。
我有一些 git 别名,它们将分支名称作为参数,我想知道是否有办法让分支名称自动完成以与它们一起使用?
编辑:
只是为了从 cmets 中的讨论中提供一些澄清,具有直接映射的别名可以正常工作,即:
ci = commit
co = checkout
它涉及更多一点,并使用$1作为参数而不是,例如:
tagarchive = !f() { git tag archive/$1 origin/$1 && git push origin :$1 && git push origin archive/$1 && git branch -d $1; }; f
【问题讨论】:
-
自动完成对我来说确实适用于别名。你在使用 bash 吗?你在什么系统上? (操作系统、发行版、包管理器等)只是检查,但“git 别名”是指名为 alias.foo 的 git config 条目,对吗?
-
@kini bash 在 Ubuntu 上。 Git 别名存储在配置中的
[alias]中,是的。 -
你能告诉我们这些别名吗?例如,我为
checkout和whatchanged提供了简单的重命名别名,这些别名仍然适用于制表符完成(这也适用于 Ubuntu,值得一提)。 -
@David 这说明了这一点——我也有一些重命名别名——我怀疑当别名的作用不仅仅是直接映射时,自动完成功能会停止工作。
co(checkout) 之类的别名对我来说很好用。更新了问题。 -
Git 补全应该在 Git 2.1(2014 年 8 月)中更好地工作。见my answer below
标签: linux git autocomplete alias