Com o GitHub, como forçar todas as ramificações ao adicionar um repositório existente?

125

Criei um novo repositório GitHub - quero colocar meu repositório existente lá.
Eu segui as instruções:

cd existing_git_repo
git remote add origin [email protected]:acme-org/myprj.git
git push origin master

Isso apenas envia a ramificação principal para o GitHub.
Como faço para enviar tudo (incluindo todos os ramos) do repositório existente para o novo repositório do GitHub?

Kipper
fonte
Nota: você também possui o git push --follow-tagsgit 1.8.3+ (maio de 2013). Veja minha resposta editada abaixo
VonC

Respostas:

237

Nota: git push --all não enviará suas tags, apenas suas ramificações.

git push --all
git push --tags

realmente empurraria tudo . Consulte também " Configure o git para puxar e empurrar todos os ramos ".
Não esqueça a --dry-runopção de fazer alguns testes antes de realmente empurrar tudo.
Consulte também a ajuda do GitHub " Trabalhando com controles remotos " para definir sua origem para seu repositório remoto do GitHub.


Como mencionado em " Como fazer com que o" git push "inclua tags em uma ramificação? ", O git 1.8.3+ (maio de 2013) introduziu:

git push --follow-tags

Isso não enviará todas as tags, mas somente aquelas acessíveis a partir das ramificações que você está enviando.

Isso pode ajudar a manter essa operação (enviando confirmações e tags) feita com um comando em vez de dois.

O Git 2.4.1+ (Q2 2015) apresentará a opção push.followTags.

VonC
fonte
Isso parece não funcionar quando você deseja enviar para outro controle remoto (em vez de origem), apenas empurra minha ramificação atual.
Aloys
@Ligas que dependeriam da sua versão git e da política de envio padrão atual: stackoverflow.com/questions/10002239/…
VonC
Se você quiser enviar remotamente ramificações remotas, use --mirror
BFar
18

A resposta aceita não está certa, ou pelo menos não funcionou para mim. Eu também precisava especificar o repositório remoto, por exemplo:

git push origin --all
Iain Hunter
fonte
A especificação do controle remoto é necessária apenas quando o upstream estiver desativado.
aross 31/03
Repositório necessário se vários controles remotos foram adicionados, eu acredito ( $git remote -v)
michael
2
Para definir o rastreamento entre as filiais local e remota, u pode ser adicionado:git push -u origin --all
Drenai