Différences entre Commit, Commit et Push, Commit et Sync

149

J'utilise Visual Studio 2013 et je suis confronté à 3 options pour la validation de mon code C #. J'ai besoin d'une explication des différences entre chacune des options en ce qui concerne ce qui arrive à mon dépôt local par rapport au dépôt GitHub.

  • L'option 1 dit Commit
  • L'option 2 dit Commit et Push
  • L'option 3 dit Commit et Sync

Je ne comprends pas très bien la différence entre les 2 dernières options. Quand devrais-je utiliser Commit and Sync plutôt que Commit et Push?

Alfred Waligo
la source

Réponses:

216
  1. Commit enregistrera simplement les modifications que vous avez effectuées sur votre machine locale. Il ne marquera pas la modification dans le référentiel distant.
  2. Commit et Push feront ce qui précède et le pousseront vers le référentiel distant. Cela signifie que toutes les modifications que vous avez apportées seront également enregistrées dans le référentiel distant.
  3. Commit and Sync fait trois choses. Premièrement, il s'engagera. Deuxièmement, il effectuera une extraction (récupère les informations mises à jour du dépôt distant). Enfin, ça va pousser.

En savoir plus sur Microsoft ici

camiblanch
la source
Je n'obtiens vraiment pas le "Commit and Sync". Premièrement, il s'engagera. Deuxièmement, il effectuera une traction Enfin, il poussera. Pourquoi pousser requis ici lorsque les modifications de code sont déjà validées dans le référentiel distant (pas de modifications à pousser).
Bhuwan Pandey le
6
@BhuwanPandey L'exécution d'un "commit" n'inclut pas de "push". Ils sont séparés. Seul un "push" mettra à jour votre commit vers le référentiel distant. Voir l'image dans l'autre réponse pour voir cela. Le "commit" va de l'index au dépôt local, tandis que "push" se termine en allant du dépôt local au dépôt distant
camiblanch
L'opération de synchronisation peut-elle provoquer des conflits lorsque plusieurs utilisateurs travaillent simultanément dans l'application?
Murali Dhar Darshan
J'utilise Visual Studio 2017 et la commande Commit and Sync ne transmet pas complètement vos modifications. Je dis cela parce qu'en effectuant une synchronisation, mes modifications sont affichées dans l'onglet historique de Visual Studio, mais sur le site Github, elles n'apparaissent pas. J'ai dû exécuter une commande Push après Commig et Sync, puis mes modifications sont apparues sur le site Github.
Fabiano
Je pense que la confusion vient du fait que Commit envoie des fichiers au référentiel distant. En fait, Commit enregistre simplement vos modifications avec le référentiel local. Sans Push, il ne touche jamais le serveur.
Alan Baljeu le
72

Pour ajouter à la réponse de camieblanch. J'ai trouvé cette image / cet article utile de tanascius ( ici ). "Voici une belle photo d'Oliver Steele, qui explique le modèle git et les commandes:" entrez la description de l'image ici

A. sharif
la source
1
Mais où est Sync sur cette image?
Alan Baljeu le
2
Cela n'existe pas dans l'image. Si vous vous référez à la réponse de "camiblanch". Il s'agit d'un engagement dans votre dépôt local, d'un pull pour synchroniser (fusionner) le dépôt distant avec votre dépôt local, puis il pousse le dépôt local fusionné vers le dépôt distant.
A.sharif le