Git 配置默认推送 <foo_local_branch>:<bar_remote_branch>?

Git config to push <foo_local_branch>:<bar_remote_branch> by default?

我正在寻求为 heroku 上的生产和暂存设置一个干净的部署方法,并且想知道一个相当微妙的 git 行为。我们有两个 heroku 应用程序 运行ning,我的 .git/config 看起来像:

[remote "prod"]
     url = https://git.heroku.com/<appname>.git
     fetch = +refs/heads/*:refs/remotes/heroku/*
[remote "staging"]
     url = https://git.heroku.com/<appname>.git
     fetch = +refs/heads/*:refs/remotes/heroku/*

因此,如果我想将主仓库的 master 分支推送到 staging,命令将是:

$ git push staging master

但在我们的工作流程中,我们使用 staging 分支来整合正在开发的功能。然后将 staging 分支部署到登台应用程序需要:

$ git push staging staging:master

问题:git 是否有任何配置设置允许我默认将本地 staging 分支推送到远程 master 分支?即,我想 运行:

 $ git push staging master

甚至更好

$ git push staging

将执行的内容与 git 推送暂存 staging:master.

具有相同的效果

您可以将本地 staging 分支的上游分支更改为 stating/master

git branch --set-upstream-to=staging/master

如果您现在 运行 git 从本地暂存分支推送,您将推送到 staging/master

您还可以告诉 git 在创建本地分支时跟踪特定的远程分支

git checkout -b staging staging/master

并且您可以看到您的本地分支正在跟踪哪个远程分支

git branch -vv