为' git add remote ...'创建Fish别名

时间:2016-04-25 14:30:24

标签: git heroku alias fish

我经常忘记如何从两个不同的Mac推送到同一个heroku应用程序,所以我总是在google中找到命令git add remote heroku git@heroku.com:my_project.git

我想为这个命令创建一个别名,我只需要使用别名和应用程序的名称作为参数,如下所示:herokuadd thenameofmyapp

我尝试使用别名herokuadd git remote add heroku git@heroku.com:$argv.git创建它,但它不起作用,无法找出原因。

3 个答案:

答案 0 :(得分:4)

当您使用alias时,Fish只会将您的ARGV附加到命令的末尾。尝试将某些内容置于echo以查看:

alias herokuadd "echo git@heroku.com:$argv.git"
herokuadd foo
# git@heroku.com:.git foo

如果您改为编写function,则可以内联$argv[1]

function herokuadd
  echo git@heroku.com:$argv[1].git
end
herokuadd foo
# git@heroku.com:foo.git

答案 1 :(得分:3)

git config --global alias.herokuadd '!herokuadd() { git remote add heroku git@heroku.com:$1.git; }; herokuadd'

应该是你追求的目标。

答案 2 :(得分:1)

Git别名可以从命令行获取参数

以下是使用的示例:

[alias]
    ra = "!f() { git remote add $1 https://bitbucket.org/$2.git; }; f"

如果您希望同时添加远程和拉取,可以随时添加更多与;&&分隔的命令来执行多个命令。

另一种选择是使用带有git别名的脚本 以下是如何执行脚本的示例:

[alias]
    l = "!bash -c 'source ~/.githelpers && pretty_git_log'"

在您的情况下,因为您正在使用鱼,您可以设置您的硬编码(在所有机器上都相同),只需使用没有任何参数的git别名。

[alias]
    set_remote = "git remote add <name> <url>"