Heroku tem uma política de ignorar todos os ramos, exceto o 'mestre'.
Embora eu tenha certeza de que os designers da Heroku têm excelentes razões para essa política (eu acho que otimizo o armazenamento e o desempenho), a consequência para mim como desenvolvedor é que, seja qual for o ramo de tópico local em que eu esteja trabalhando, eu gostaria de uma maneira fácil para mudar o mestre do Heroku para esse tópico local e fazer um "git push heroku -f" para sobrescrever o mestre no Heroku.
O que obtive da leitura da seção "Pushing Refspecs" em http://progit.org/book/ch9-5.html é
git push -f heroku local-tópico-ramo: refs / heads / master
O que eu realmente gostaria é de uma maneira de definir isso no arquivo de configuração para que "git push heroku" sempre faça o acima, substituindo local-topic-branch pelo nome de qualquer que seja o meu branch atual. Se alguém souber como fazer isso, entre em contato!
A ressalva para isso, é claro, é que isso só é sensato se eu for o único que pode empurrar para esse aplicativo / repositório Heroku. Uma equipe de teste ou controle de qualidade pode gerenciar esse repositório para testar diferentes filiais candidatas, mas elas precisam se coordenar para que todos concordem com qual filial estão enviando para ela em um determinado dia.
Desnecessário dizer que também seria uma boa idéia ter um repositório remoto separado (como o GitHub) sem essa restrição para fazer backup de tudo. Eu chamaria essa de "origem" e usaria "heroku" para o Heroku para que "git push" sempre faça backup de tudo para a origem, e "git push heroku" empurra qualquer ramo que eu esteja atualmente no ramo mestre do Heroku, sobrescrevendo-o se necessário.
Isso funcionaria?
[remoto "heroku"] url = git@heroku.com: my-app.git push = + refs / chefes / *: refs / chefes / mestre
Eu gostaria de ouvir alguém mais experiente antes de começar a experimentar, embora suponha que possa criar um aplicativo fictício no Heroku e experimentar isso.
Quanto à busca, eu realmente não me importo se o repositório Heroku é somente para gravação. Eu ainda tenho um repositório separado, como o GitHub, para backup e clonagem de todo o meu trabalho.
Nota de rodapé: Esta pergunta é semelhante, mas não é a mesma que a implantação do Good Git usando a estratégia de ramos com o Heroku?