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

Create Fish alias for 'git add remote...'

我通常忘记如何从两台不同的 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 创建它,但它不起作用,也无法弄清楚原因。

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

应该是你想要的。

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

这是我使用的示例:

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

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

另一种选择是使用带有 git 别名的脚本。
下面是一个关于如何执行脚本的例子:

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

在你的情况下,因为你使用的是鱼,你可以设置你的硬编码(在你所有的机器上都是一样的)并且简单地使用 git 没有任何参数的别名。

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

当您使用 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