Avec GitHub, comment puis-je pousser toutes les branches lors de l'ajout d'un dépôt existant?

125

J'ai créé un nouveau dépôt GitHub - je souhaite y placer mon dépôt existant.
J'ai suivi les instructions:

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

Cela ne fait que pousser la branche principale vers GitHub.
Comment transférer tout (y compris toutes les branches) de mon dépôt existant vers mon nouveau dépôt GitHub?

kipper
la source
Remarque: vous avez également git push --follow-tagsavec git 1.8.3+ (mai 2013). Voir ma réponse modifiée ci
VonC

Réponses:

237

Remarque: git push --all ne poussera pas vos balises, seulement vos branches.

git push --all
git push --tags

pousserait vraiment tout . Voir aussi " Configurer git pour tirer et pousser toutes les branches ".
N'oubliez pas la --dry-runpossibilité de faire des tests avant de tout pousser.
Consultez également l'aide de GitHub « Utilisation des télécommandes » pour définir votre origine dans votre dépôt distant GitHub.


Comme mentionné dans « Comment faire pour que« git push »inclue des balises dans une branche? », Git 1.8.3+ (mai 2013) a introduit:

git push --follow-tags

Cela ne poussera pas toutes les balises, mais seulement celles accessibles depuis la ou les branches HEAD (s) que vous poussez.

Cela peut aider à garder cette opération (pousser les commits et les balises) avec une commande au lieu de deux.

Git 2.4.1+ (Q2 2015) introduira l'option push.followTags.

VonC
la source
Cela semble ne pas fonctionner lorsque vous souhaitez pousser vers une autre télécommande (au lieu de l'origine), cela ne fait que pousser ma branche actuelle.
Aloys
@Aloys qui dépendraient de votre version de git et de la politique de push par défaut actuelle: stackoverflow.com/questions/10002239/…
VonC
Si vous souhaitez également pousser les branches distantes, utilisez--mirror
BFar
18

La réponse acceptée n'est pas tout à fait correcte, ou du moins cela n'a pas fonctionné pour moi. J'avais également besoin de spécifier le dépôt distant, par exemple:

git push origin --all
Iain Hunter
la source
La spécification de la télécommande n'est nécessaire que lorsque l'amont n'est pas défini.
aross
référentiel requis si plusieurs télécommandes ont été ajoutées, je crois ( $git remote -v)
michael
2
Pour définir le suivi entre les succursales locales et distantes, vous pouvez ajouter:git push -u origin --all
Drenai