这可以将我的“主”分支推送到远程分支“生产”
git push origin master:refs/heads/production
但是,如何保存远程位置,以便我可以执行git push production master
?我不想在本地生产分支。它是发展直到我推动它。然后我只想做
git merge production
在服务器上抓取最新副本。
答案 0 :(得分:2)
我认为你不能在这里得到你想要的东西(“你想要的是什么”git push production master
),但你可以通过两个配置条目获得更简单的东西:
git config remote.production.url ssh://...
git config remote.production.push master:production
之后:
git push production
将推送到指定的网址(注意:您可以设置remote.production.pushurl
为production
制作单独的网址以进行提取和推送,但这可能不需要。由于远程后没有refspec,git push
会咨询remote.production.push
来设置一个。由于 一个remote.production.push
,它将使用它而不是任何已配置的branch.master.remote
和branch.master.merge
(如果存在)或remote.pushdefault
(如果这些)不存在)。
这里的缺点是如果你不小心写了:
git push production master
然后git push
会看到您指定了refspec并忽略remote.production.push
。指定的refspec等同于(完整的longwinded版本)refs/heads/master:refs/heads/master
。
为了避免这个最后的缺点,你可以简单地配置别名,而不是愚弄所有这些,例如:
git config alias.pushprod "push origin master:production"
之后:
git pushprod
是“输入”已经运行的完整命令的更短路径。
答案 1 :(得分:0)
如果你这样做
git push -u origin master:refs/heads/production
然后Git会记住上游分支(-u
代表“设置上游”)。