如何将不同的本地Git分支推送到Heroku / master

问题描述 投票:381回答:10

Heroku的政策是忽略除'master'之外的所有分支。

虽然我确信Heroku的设计师有很好的理由来执行此政策(我想是为了存储和性能优化),但对我来说,作为开发人员的后果是,无论我在从事什么本地主题分支工作,我都希望将Heroku的master切换到该本地主题分支并执行“ git push heroku -f”以覆盖Heroku上的master的简便方法。

我从阅读http://progit.org/book/ch9-5.html的“推送参考规格”部分中得到的是

git push -f heroku local-topic-branch:refs / heads / master

我真正想要的是一种在配置文件中进行设置的方法,以便“ git push heroku”始终执行上述操作,将local-topic-branch替换为当前分支发生的任何名称成为。如果有人知道如何做到这一点,请告诉我!

当然,需要注意的是,只有当我是唯一可以推送到该Heroku应用程序/存储库的人时,这才有意义。测试或质量检查团队可能会管理这样的存储库以尝试不同的候选分支,但是他们必须进行协调,以便他们在任何一天都同意将其推向哪个分支。

不用说,拥有一个独立的远程存储库(例如GitHub)也是一个好主意,而没有将所有内容备份到此的限制。我会称其为“起源”,并为Heroku使用“ heroku”,以便“ git push”始终将所有内容备份到原始位置,而“ git push heroku”会将我当前所在的任何分支推入Heroku的master分支,并覆盖它如有必要。

这项工作吗?

[远程“ heroku”]网址= [email protected]:my-app.git推送= + refs / heads / *:refs / heads / master

[我想在开始尝试之前先听一些更有经验的人的声音,尽管我想我可以在Heroku上创建一个虚拟应用程序并对此进行实验。

至于获取,我并不在乎Heroku存储库是否仅写。我仍然有一个单独的存储库,例如GitHub,用于备份和克隆我的所有工作。

脚注:此问题与Good Git deployment using branches strategy with Heroku?

]类似但不完全相同

Heroku的政策是忽略除“ master”以外的所有分支。虽然我确定Heroku的设计师对此政策有充分的理由(我想是为了存储和性能优化),但是...

git github heroku push git-push
10个回答
122
投票

使用通配符时,它必须出现在refspec的两侧,因此+refs/heads/*:refs/heads/master将不起作用。但是您可以使用+HEAD:refs/heads/master

git config remote.heroku.push +HEAD:refs/heads/master

0
投票

对我来说,它有效,



50
投票
git push -f heroku local_branch_name:master

8
投票

将不同的本地Git分支推送到Heroku / master的最安全命令。


5
投票

还请注意,如果您使用git flow系统和功能分支可能会被称为


4
投票

您应该签出heroku_san,它可以很好地解决此问题。



1
投票

Heroku实验室现在提供了一个github插件,让您指定要推送的分支。


0
投票

我认为应该是

© www.soinside.com 2019 - 2024. All rights reserved.