Configurar ambiente de QA e Produção no Heroku.

Estou com um projeto pessoal no Heroku.
Recentemente surgiu a necessidade de criar um ambiente para demonstração. Como todo meu desenvolvimento está sendo feito no master tenho que informar qual o branch remoto que desejo fazer o push.

Criar o branch de qa e produção:

git checkout -b qa
git remote add heroku-qa git@heroku.com:appname-qa.git
git fetch heroku-qa
git branch qa --set-upstream-to=heroku-qa/master

git checkout master
git branch production --set-upstream-to=heroku-production/master

Isso resolve a questão de qual código está em cada ambiente. Mas, me gera o problema de, sempre que quero fazer um push preciso usar:

git push heroku-qa HEAD:master

Para resolver isso, mudo o local de onde o git vai procurar no servidor remoto. Ao invés de procurar um branch, remoto, com o mesmo nome do local, ele usa o branch configurado como upstream.

git config push.default upstream

Mais informações sobre o destino do push em: http://git-scm.com/docs/git-config.html:

push.default
Defines the action git push should take if no refspec is given on the command line, no refspec is configured in the remote, and no refspec is implied by any of the options given on the command line.[…]

Agora, já posso fazer apenas um git push, que o git sabe para qual branch remoto mandar, de acordo com o branch local.

Gostaria de saber mais?
http://longair.net/blog/2011/02/27/an-asymmetry-between-git-pull-and-git-push/
http://stackoverflow.com/questions/13148066/warning-push-default-is-unset-its-implicit-value-is-changing-in-git-2-0

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s