127 votes

Comment copier une branche locale de la Git sur un repo distant

J'ai pris les mesures suivantes:

  1. Cloné une distance repo Git
  2. Ramifiés la branche master pour un expérimentales
  3. édition/testé/commis de code de la branche expérimentale

Maintenant, je ne suis pas prêt à fusion expérimental en maître. Je tiens, toutefois, à le pousser à revenir à la distance pensions que c'est le référentiel que je partage avec quelques collègues. J'aimerais voir ce que j'ai fait dans la branche expérimentale. En général, je viens d'accès le repo distant via SSH.

Comment puis-je partager mon local de la direction sur la télécommande repo, sans affecter la distance des pensions de la branche principale?

157voto

VonC Points 414372

Selon git push page de manuel:

 git push origin experimental

Trouver une ref qui correspond experimental dans le référentiel source (le plus probable, il trouverait refs/heads/experimental), et la mise à jour de la même référence (par exemple, refs/heads/experimental) à l'origine du référentiel.
Si experimental n'existe pas à distance, il serait créé.

C'est la même chose que:

git push origin experimental:refs/heads/experimental

Créer la branche experimental , est à l'origine du référentiel par la copie de l'actuel experimental de la branche.
Ce formulaire est uniquement nécessaire de créer une nouvelle branche ou une étiquette dans le dépôt distant lorsque le nom local et le distant nom sont différents; autrement, la ref nom sur son propre travail.

Ou, comme mentionné dans git astuce, vous pouvez définir une "Branche de la Distance par Défaut":

Vous pouvez utiliser la commande git config pour affecter une valeur par défaut à distance pour une branche donnée. Cette distance par défaut sera utilisé pour pousser la direction à moins d'indication contraire.

C'est déjà fait pour vous lorsque vous utilisez git clone, vous permettant d'utiliser la commande git push sans aucun argument pour pousser le local de la branche master de mettre à jour l'origine du référentiel de la branche master.

git config branch.<name>.remote <remote> 

peut être utilisé pour spécifier manuellement.


Jan suggère (pour git >= 1.7.0) push -u (ou push --set-upstream) option:

Pour chaque branche, qui est jusqu'à ce jour ou réussi, ajouter en amont (suivi) référence, utilisé par l'argument de moins git pull(1) et d'autres commandes.

De cette façon, vous n'avez pas à faire toute git config.

git push -u origin experimental

15voto

John Douthat Points 28189

Si le nom de votre succursale est , et le nom de la télécommande est , alors il est

1voto

brokenfoot Points 3689

git push -u <remote-name> <branch-name> ne fonctionne pas si la branche nouvellement créée n'est pas engendrée par la même repo, c'est à dire si vous n'avez pas créé la nouvelle branche à l'aide de git checkout -b new_branch, alors cela ne fonctionnera pas.

Pour exemple, j'avais cloné deux dépôts différents localement et j'ai dû copier repo2/branch1 à repo1/ et puis la pousser trop.

Ce lien m'a aidé à pousser ma branche locale (cloné à partir d'un autre repo) pour ma télécommande repo:

0voto

dylanfm Points 4668

Cette page sur Github guides peuvent vous aider (il est pas Github spécifique).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X