web-dev-qa-db-fra.com

Quelle est la différence entre "Push ..." et "Push to upstream ..." dans Eclipse

Lorsque vous utilisez "Pousser vers l'amont ..." dans Eclipse, les nouveaux validations "locales" sont transmises au référentiel distant et la référence de branche distante est mise à jour dans le référentiel local (donc master et Origin/master référence le même commit).

Lorsque vous utilisez "Push ..." et ajoutez une référence Push sur maître dans la fenêtre de l'assistant (refs/heads/*), les nouveaux commits "locaux" sont poussés vers le référentiel distant (comme précédemment) mais la référence de la branche distante n'est pas mise à jour dans le référentiel local (donc master référence le dernier commit mais Origin/master n'a pas bougé).

Quelle est la différence entre ces deux façons de travailler? Est-il utile pour des flux de travail décentralisés particuliers? Quelles seraient les commandes git correspondantes de ces deux approches?

34
Florent Paillard

Push to Upstream .. pousse votre branche comme vous vous y attendez pour une branche de suivi à distance.

Pousser ... ouvre une boîte de dialogue et vous permet de spécifier les refspecs que vous devez pousser, y compris les balises, les cas spéciaux comme HEAD: refs/heads/master, etc.

Qu'il ne mette pas à jour Origin/master me semble être un bug, ou peut-être qu'ils attendent la prochaine extraction pour mettre à jour Origin. J'ouvrirais un bogue sur https://bugs.Eclipse.org/bugs/enter_bug.cgi?product=EGit&component=UI

PW

16
Paul Webster

Comme suggéré par Paul, j'ai ouvert un bug sur le Bugzilla d'EGit et j'y ai obtenu une explication.

Lorsque "Push ..." est utilisé, EGit PushWizard appelle la commande de JGit avec les URI des référentiels, pas leurs noms. C'est pourquoi JGit ne peut pas mettre à jour la branche de suivi à distance.

Le bogue est toujours ouvert, nous pouvons donc espérer que dans une future version, "Push ..." effectué à partir d'un "référentiel distant configuré" mettra à jour la branche de suivi à distance.

4
Florent Paillard

Pousser ... ouvre une boîte de dialogue et vous permet de spécifier les refspecs que vous devez pousser, y compris les balises, les cas spéciaux comme HEAD: refs/heads/master, etc.

Des paramètres supplémentaires avec Push sont disponibles depuis le Git Repositories ou Package Explorer vues, mais vous devez choisir la bonne option.

De Git Repositories vue:

  1. Cliquez avec le bouton droit sur le nom du dépôt.
  2. Choisissez Push
  3. Cliquez sur Next

OU

  1. Développez le dossier Remotes.
  2. Faites un clic droit sur Origin
  3. Choisissez Configure Push...
  4. Cliquez sur le bouton Advanced

(Vous pouvez également développer Origin puis cliquer avec le bouton droit sur Push et aller à Configure Push... puis appuyez sur le bouton Advanced)

Du Package Explorer vue

  1. Cliquez avec le bouton droit sur le dossier du projet (élément le plus haut).
  2. Team -> Remote -> Push -> Next (équivaut à appuyer sur le bouton "Avancé" dans les étapes ci-dessus.)

OU

  1. Cliquez avec le bouton droit sur le dossier du projet (élément le plus haut).
  2. Team -> Remote -> Configure Push to Upstream...
0
mike