我经常忘记如何从两个不同的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
创建它,但它不起作用,无法找出原因。
答案 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>"