Heroku has a policy of ignoring all branches but 'master'.
While I'm sure Heroku's designers have excellent reasons for for this policy (I'm guessing for storage and performance optimization), the consequence
to me as a developer is that whatever
local topic branch I may be working on, I would like an easy way
to switch Heroku's master
to that
local topic branch and do a "git push heroku -f"
to over-write master on Heroku.
What I got from reading the "Pushing Refspecs" section of http://progit.org/book/ch9-5.html is
git push -f heroku local-topic-branch:refs/heads/master
What I'd really like is a way
to set this up in the config file so that "git push heroku" always does the above, replacing local-topic-branch with the name of whatever my current branch happens
to be. If anyone knows how
to accomplish that, please let me know!
The caveat for this, of course, is that this is only sensible if I am the only one who can push
to that Heroku app/repository. A test or QA team might manage such a repository
to try out different candidate branches, but they would have
to coordinate so that they all agree on what branch they are pushing
to it on any given day.
Needless
to say, it would also be a very good idea
to have a separate remote repository (like Github) without this restriction for backing everything up
to. I'd call that one "origin" and use "heroku" for Heroku so that "git push" always backs up everything
to origin, and "git push heroku" pushes whatever branch I'm currently on
to Heroku's master branch, overwriting it if necessary.
Can anybody tell me if this would work?
[remote "heroku"]
url =
[email protected]:my-app.git
push = +refs/heads/*:refs/heads/master
I'd like
to hear from someone more experienced before I begin
to experiment, although I suppose I could create a dummy app on Heroku and experiment with that.
As for fetching, I don't really care if the Heroku repository is write-only. I still have a separate repository, like Github, for backup and cloning of all my work.
Footnote: This question is similar
to, but not quite the same as http://stackoverflow.com/questions/1489393/good-git-deployment-using-branches-strategy-with-heroku