如何在bash别名中扩展命令?

时间:2014-05-07 01:11:13

标签: git bash alias

我想创建一个运行git pull origin <current branch name>

的别名

我可以使用git rev-parse --abbrev-ref HEAD获取当前分支名称。

但是如何将第二个命令放在bash别名的第一个命令中呢?

我已经尝试了

alias gup="git pull origin `git rev-parse --abbrev-ref HEAD`"

alias gup="git pull origin $(git rev-parse --abbrev-ref HEAD)"

但两者都会导致别名中的初始分支名称,而不是命令运行时的分支名称。

1 个答案:

答案 0 :(得分:4)

当前的问题是,当别名定义时,命令子站在双引号内扩展。使用单引号将通过推迟命令替换来解决此问题,直到您实际使用别名为止。

alias gup='git pull origin $(git rev-parse --abbrev-ref HEAD)'

但是,您可以省去尝试使用shell函数来正确引用引用的麻烦。

gup () {
    git pull origin $(git rev-parse --abbrev-ref HEAD)
}