【发布时间】:2015-02-16 09:48:22
【问题描述】:
我有一个 Git 命令别名来检查存储库中的最新标签:
~/.gitconfig:
checkout-latest = !git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
所以我可以在这样正确标记的存储库中使用它:
$ git checkout-latest
我有 checkout 命令的命令别名:
~/.gitconfig:
co = checkout
checkout-latest 不适用于结帐的命令别名:
$ git co-latest
git: 'co-latest' is not a git command. See 'git --help'.
如何配置 Git 以便可以使用 latest 作为指向以编程方式确定的最新标签的标签别名?我想这样使用它:
$ git checkout latest
和
$ git co latest
请注意,在我想要的变体中,子命令和标签之间没有破折号。
【问题讨论】:
-
如果你想让
co-latest工作,只需添加它:co-latest = !git checkout-latest。如果不维护一个实际的标签latest,我认为你不能做你想做的事。 -
是的,可以。但我既不想在每个 repo 中维护
latest标签,也不想混淆子命令和标签的语法。 -
-
co-latest是git的子命令,而git checkout latest是命令、子命令和标签别名。我认为在子命令级别引用标签的东西很难看。 -
我明白了。我认为这是您得出的任意区别,并且严重限制了您可以使用别名做的事情,但这不是我的电话。我不相信您可以在这里做您想做的事情(除非您将
git本身包装在一个 shell 函数中并根据子命令和“tag/ref”参数进行调度。
标签: git shell aliases subcommand