48 votes

git push to branche distante

Les gens,

J'avais cloné un repo. J'ai créé une succursale de il pour travailler sur un long métrage en émettant la commande suivante:

git branch fix78

ensuite, j'ai travaillé sur cette branche par

git checkout fix78

J'ai continué à faire s'engage à cette succursale. Maintenant, je voulais le pousser à la mise en pension et donc j'ai lancé la commande suivante:

git push origin master:fix78

J'ai regardé le repo partir d'un navigateur web et vu qu'une nouvelle branche appelée fix78 a été créé sur le repo. Mais il n'a pas tout de ma s'engage à ce que j'avais fait.

Ce que je fais mal ici? C'est ce que je suis en train de réaliser:

Il y a un repo(master(tronc dans le SVN lingo)), maintenant, quand je travaille sur une fonctionnalité que je veux créer une branche locale d'elle et puis je tiens également à vérifier dans cette branche à la prise en pension(de sorte que les autres membres de l'équipe peuvent voir ce que je suis en train de travailler sur), alors je veux que mon agence locale pour être en phase avec cette distance que j'ai créer.

Toute aide/commentaires serait totalement génial.

Merci.

61voto

rlc Points 2094

git push origin master:fix78 pousse le maître local vers une branche distante appelée fix78. Vous vouliez installer le correctif de branche locale 78, qui a la même syntaxe mais sans les master:

Vous pouvez résoudre ce problème en effectuant git push origin :fix78 pour supprimer la branche distante, puis git push origin fix78 pour transférer votre branche locale vers le référentiel distant.

52voto

Adam Dymitruk Points 34999

La commande push a la forme d'

git push remote_name source_ref:destination_ref

Tout ce que vous devez faire pour corriger votre erreur est

git push origin +fix78:fix78

Le plus indique que vous ne se soucient pas que la branche de potentiellement perdre de l'histoire que la précédente poussée a été une erreur.

La syntaxe alternative est

git push -f origin fix78

si vous omettez la destination, il est implicite que c'est le même nom. Si le suivi est mis en place à une branche particulière de la télécommande, il ira à une. Supprimer des branches a 2 syntaxes, de la vieille:

git push -f origin :fix78

et

git push --delete origin fix78

La première est lu comme "push rien dans fix78" qui le supprime.

Un truc est que si vous spécifiez . comme le nom distant, il implique l'actuel des pensions de la télécommande. Ceci est utile pour la mise à jour d'une branche locale sans avoir à le vérifier:

git push . origin/master:master

sera mise à jour au master sans avoir à checkout master.

Espérons que cette aide

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