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分支,并覆盖它如有必要。
这行得通吗?
[remote "heroku"]
url = git@heroku.com:my-app.git
push = +refs/heads/*:refs/heads/master
尽管我想我可以在Heroku上创建一个虚拟应用程序并对此进行试验,但我还是想听听经验更丰富的人的信息。
至于获取,我并不在乎Heroku存储库是否仅写。 我仍然有一个单独的存储库,例如GitHub,用于备份和克隆所有工作。
脚注:这个问题与在Heroku中使用分支策略的Good Git部署相似但又不太相同?
#1楼
参见https://devcenter.heroku.com/articles/git#deploying-code
$ git push heroku yourbranch:master
#2楼
另请注意,如果您使用git flow系统和功能分支可能会被称为
feature/mobile_additions
并使用名为stagingtwo的git远程服务器,则将命令推送到heroku将是
git push stagingtwo feature/mobile_additions:master
#3楼
Heroku实验室现在提供github附加组件,让您指定要推送的分支。
您需要暂时注册成为Beta测试人员。
#4楼
我发现这很有帮助。 http://jqr.github.com/2009/04/25/deploying-multiple-environments-on-heroku.html
#5楼
我认为应该
push = refs/heads/*:refs/heads/*
代替...
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3165540