Pousser une branche locale vers GitHub


117

J'ai configuré Git pour que, lorsque je l'exécute git push, il envoie des modifications à mon dépôt GitHub. Jusqu'à présent, je n'ai eu qu'une branche principale.

Cependant, j'ai maintenant créé une succursale locale et je m'y suis engagé en utilisant:

git checkout -b my_new_branch
git commit

Ce que je voudrais faire maintenant, c'est pousser mes modifications sur cette branche vers GitHub. Est-ce que je fais juste un push git?

Quand je l'ai configuré pour la première fois, j'ai couru:

git config push.default current

Quelle est exactement votre question? Avec push.defaultcette façon, oui, git pushpoussera la branche actuelle à l'origine, qui est votre dépôt github, en supposant que vous avez cloné à partir de là. (Vous pouvez spécifier une télécommande différente avec branch.my_new_branch.remotesi vous le souhaitez.) Alors avez-vous essayé ceci et ne l'avez-vous pas fonctionné?
Cascabel

1
Si vous voulez que toutes vos branches locales poussent vers la même branche distante, soyez explicite: git push origin HEAD: remote_branch
Ustaman Sangat

Réponses:


221

Je crois que vous recherchez git push origin my_new_branch, en supposant que votre télécommande d'origine est configurée pour atteindre votre référentiel github.


git push <remote> <branch> selon atlassian.com/git/tutorials/syncing/git-push
vikramvi

3
Si vous voulez ensuite travailler sur cette branche avec d'autres personnes et donc faire git pull, vous voudrez définir les informations de suivi pour votre nouvelle branche: git branch --set-upstream-to=origin/my_new_branch my_new_branch
gloriphobia

9

En fonction de vos paramètres git locaux, si vous avez une branche extraite qui n'est pas celle que vous avez clonée ou celle qui existe là où vous essayez de pousser, git ne poussera pas votre branche locale.

Voici le message qu'il fournit:

avertissement: push.default est désactivé; sa valeur implicite est passée dans Git 2.0 de «matching» à «simple». Pour étouffer ce message et maintenir le comportement traditionnel, utilisez:

git config --global push.default correspondant

Pour supprimer ce message et adopter le nouveau comportement maintenant, utilisez:

git config --global push.default simple

Lorsque push.default est défini sur 'matching', git poussera les branches locales vers les branches distantes qui existent déjà avec le même nom.

Depuis Git 2.0, Git utilise par défaut le comportement «simple» plus conservateur, qui ne pousse que la branche actuelle vers la branche distante correspondante que «git pull» utilise pour mettre à jour la branche actuelle.

Voir 'git help config' et recherchez 'push.default' pour plus d'informations. (le mode 'simple' a été introduit dans Git 1.7.11. Utilisez le mode similaire 'current' au lieu de 'simple' si vous utilisez parfois des versions plus anciennes de Git)

fatal: la branche actuelle MyLocalBranchn'a pas de branche amont. Pour pousser la branche actuelle et définir la télécommande en amont, utilisez

git push --set-upstream origin MyLocalBranch

0

Si vous êtes vraiment paresseux, vous pouvez pousser toutes les branches locales en utilisant simplement

git push --all

--tout

Poussez toutes les branches (ie réfs sous refs/heads/); ne peut pas être utilisé avec d'autres <refspec>.


-12

Si vous avez configuré votre git pour pousser vers votre référentiel principal GitHub, peu importe la branche où vous vous trouvez, il sera transféré vers votre référentiel principal GitHub.

Gardez à l'esprit que, si de nombreux développeurs travaillent dans le même référentiel, vous pourriez avoir un conflit.


J'ai exécuté git config push.default current
Noam
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.