Gens,
J'avais cloné un dépôt. J'ai créé une branche pour travailler sur une fonctionnalité en émettant la commande suivante:
git branch fix78
alors j'ai travaillé sur cette branche en
git checkout fix78
J'ai continué à m'engager dans cette branche locale. Maintenant, je voulais pousser cela vers le repo et j'ai donc émis la commande suivante:
git Push Origin master:fix78
J'ai vu le dépôt à partir d'un navigateur Web et j'ai vu qu'une nouvelle branche appelée fix78 a été créée sur le dépôt. Mais il n'y avait aucun de mes engagements que j'avais faits.
Qu'est-ce que je fais mal ici? Voici ce que j'essaie de réaliser:
Il y a un repo (master (trunk dans le jargon SVN)), maintenant quand je travaille sur une fonctionnalité, je veux en créer une branche locale et ensuite je veux aussi archiver cette branche dans le repo (pour que l'autre équipe les membres peuvent voir sur quoi je travaille), alors je veux que ma branche locale soit synchronisée avec cette branche distante que je crée.
Toute aide/rétroaction serait totalement géniale.
Merci.
git Push Origin master:fix78
pousse le maître local vers une branche distante appelée fix78. Vous vouliez pousser la branche locale fix78, qui a la même syntaxe mais sans le master:
Vous pouvez le corriger en faisant git Push Origin :fix78
pour supprimer la branche distante puis git Push Origin fix78
pour pousser votre succursale locale vers le référentiel distant.
La commande Push a la forme de
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 vous souciez pas de la perte potentielle de l'historique de cette branche, car le push précédent était une erreur.
La syntaxe alternative est
git Push -f Origin fix78
si vous omettez la destination, cela implique que c'est le même nom. Si le suivi est configuré pour une branche particulière de la télécommande, il ira à celle-ci. La suppression de branches a 2 syntaxes, l'ancienne:
git Push -f Origin :fix78
et
git Push --delete Origin fix78
Le premier est lu comme "Ne rien pousser dans fix78" qui le supprime.
Une astuce est que si vous spécifiez .
comme nom de la télécommande, cela implique le dépôt actuel comme télécommande. Ceci est utile pour mettre à jour une branche locale sans avoir à la vérifier:
git Push . Origin/master:master
mettra à jour le maître sans avoir à retirer le maître.
J'espère que cela t'aides