Legal, eu também faço esse tipo de coisa, seja criando aliases pra coisas mais simples (por exemplo, definir git s
como um alias para git status
, porque sou preguiçoso nesse nível) ou bash scripts para coisas mais complexas (como é o seu caso).
Mas só uma coisa, neste trecho:
git remote rm origin
git remote add origin github.com/2
git push
git remote rm origin
git remote add origin github.com/1
Vc fica removendo e adicionando os remotes toda hora, e acho que não é o melhor jeito de lidar com essa situação.
Se vc sempre precisa fazer o push para dois repositórios remotos, basta criar um novo remote com as duas URL's.
No exemplo abaixo vou chamar este remote de all
:
# Cria o remote chamado "all" e adiciona a URL do repositório principal
git remote add all github.com/1
# adiciona a segunda URL (repositório secundário) ao remote "all"
git remote set-url --add --push all github.com/2
# agora precisa setar de novo a URL do repositório principal (abaixo explico o motivo)
git remote set-url --add --push all github.com/1
O terceiro comando parece redundante, mas ele é necessário porque o segundo comando sobrescreve a URL que foi definida pelo primeiro comando (é estranho, mas enfim, isso é explicado aqui).
Agora se rodarmos git remote show all
podemos ver ambas as URL's definidas para push:
* remote all
Fetch URL: github.com/1
Push URL: github.com/2
Push URL: github.com/1
etc... (mais um monte de informações)
Então basta fazer git push all meu_branch
, que será feito o push
do meu_branch
para ambos os repositórios, sem a necessidade de ficar apagando e recriando os remotes toda hora.
Lembrando que na primeira vez, quando o branch ainda não está mapeado para este remoto, é interessante fazer git push all -u branch
, assim o branch será mapeado para o remote all
e nas próximas vezes bastará rodar git push
.
E claro que vc pode usar o nome que quiser para o remote. Eu só usei "all" nos exemplos porque sou muito criativo :-)
Poderia até fazer no próprio origin
, por exemplo.
Se quiser mais informações, eu deixei um guia mais detalhado aqui.
Obs: claro que vc também poderia ter dois remotes separados, cada um com sua URL:
git remote add principal github.com/1
git remote add secundario github.com/2
E então chamar git push
separadamente para cada um deles:
git push principal meu_branch
git push secundario meu_branch
Fica a seu critério decidir o que é melhor para o seu caso.
De qualquer forma, em qualquer uma dessas opções vc só cria os remotes uma vez e depois escolhe para qual quer fazer o push
. Eu acho melhor do que ficar apagando e adicionando remotes toda hora.