2009-07-02 9 views
39

J'ai un référentiel local sur lequel je travaille et sa télécommande est hébergée sur GitHub. J'ai récemment créé une branche et commencé à travailler dessus, en faisant plusieurs commits et maintenant je souhaite pousser la branche vers GitHub et être capable de la transférer vers un autre référentiel cloné.Pousser et tirer des branches dans Git

Que faut-il faire pour y parvenir?

Si cela n'est pas possible avec GitHub, je serais heureux de savoir comment le faire normalement.

+0

Plus d'informations sur le flux de travail à l'adresse: http: //stackoverflow.com/a/9204499/631619 –

+0

pas le titre le plus perspicace pour une question, ugh –

Répondre

46
git push origin <local-branch-name>:<remote-branch-name> 

de remplacement pour <local-branch-name> et <remote-branch-name>. Ils peuvent être identiques ou différents, comme vous le souhaitez.

+2

Est-ce que cela signifie que je peux alors faire "git pull origin : "? – PHLAK

+4

@PHLAK: Oui, vous pouvez utiliser le même refspec pour 'git pull'. –

+0

@AlanHaggaiAlavi Mais ce n'est pas le même refspec. –

16

Comme vous l'avez mis en place les télécommandes déjà, la commande est juste

git push origin branch-name 

sur la première poussée. Par la suite, l'utilisation de git push origin pousserait toutes les branches portant le nom correspondant sur la télécommande.

5

Assurez-vous que votre URL distante utilise la syntaxe SSH et pas seulement la syntaxe du protocole Git. Si vous exécutez,

git remote show origin 

l'URL imprimée devrait ressembler,

[email protected]:yourname/projectname.git 

Vous devez l'URL trop ressembler à ça si vous voulez être en mesure de pousser. Si vous êtes juste un utilisateur public (sans accès en écriture) l'URL ressemblera,

git://github.com/yourname/projectname.git 

Si le vôtre ressemble à celui-ci, vous pouvez modifier manuellement dans vos projets fichier .git/config.

+0

Je peux déjà pousser et tirer vers et de mon repo GitHub, j'essaie juste de comprendre comment pousser et tirer une branche. – PHLAK

0

si vous avez besoin de tirer un code de branche de distance localement

$git pull origin branch_name 

alors que si vous avez besoin de pousser le code à votre succursale

vous devez vérifier est votre code enregistrer avec succès vous pouvez vérifier par

$git status 

que

$git add -A 

après cette marque commettras à votre succursale

$git commit -m "this is initial change" 

que (dernier) pousser votre code à votre branche par:

$git push origin branch_name