web-dev-qa-db-fra.com

gerrit - git (pull vs checkout vs cherrypick) qui est pour quoi?

Dans le gerrit ex d'Android: link , pour télécharger le patch, je vois 4 options.

  1. repo télécharger
  2. check-out
  3. tirez
  4. choix de cerises

Quelle est la différence entre eux?

Voici ce que je pense d'eux. Précisez s'il vous plaît

  1. repo download -> Télécharge le code source complet (de tous les repos git du projet) jusqu'à ce commit
  2. caisse -> Pas sûr de ce que c'est.
  3. pull -> Vous ne savez pas ce que ça fait?
  4. cherry-pick -> Il essaie de ne télécharger que cette modification et de la fusionner dans le code source.

Je sais que tirer et payer sont différents de cherry-pick. Mais en quoi sont-ils différents?

41
mk..

Vous avez raison sur le premier. Voici le reste d'entre eux:

  1. Checkout: récupère les dernières modifications. Vous devriez déjà avoir ce repo téléchargé. Il ne fusionne pas ces nouvelles modifications mais fait en sorte que votre répertoire de travail les reflète. Vous pouvez les fusionner à votre guise plus tard.

  2. Pull: Fetch les changements AND fusionne eux dans la branche locale du même nom.

  3. Cherry-pick: récupère le commit et le lit par-dessus la branche locale actuelle, donc créant un tout nouveau commit qui a les mêmes modifications que le celui qu'il a cherché.

Ils sont un peu différents de ce qu'ils signifient réellement dans git. checkout et cherry-pick ne récupère pas automatiquement les modifications. checkout prend simplement HEAD dans un commit que vous spécifiez, créant ainsi un répertoire de travail exactement comme il était lors de ce commit. Également, cherry-pick est utilisé pour relire les commits auxquels vous avez déjà un accès local.

36
Akash Agrawal

Avec git vous avez votre propre version du dépôt. Que vous synchronisez avec les référentiels des autres. Avec fetch, vous mettez à jour vos références distantes, c.-à-d. rafraîchir ce que les autres ont. Avec checkout, vous passez à une révision spécifique. Vous voulez faire ceci, si vous venez de commencer à l'utiliser.

Maintenant, si vous suivez déjà une branche distante, il vous suffira peut-être de mettre à jour votre branche locale. C'est ce que pull fait pour vous. Il applique toutes les modifications de la branche distante à votre agence locale. Vous en avez besoin si vous l'utilisez déjà, vous voulez simplement mettre à jour.

cherry-pick vous permet de choisir un changement n'importe où dans le référentiel et de l'appliquer à votre branche locale. C'est pratique si vous êtes sur une branche différente pour une raison quelconque mais que vous avez toujours besoin de ce changement spécifique. Sachez que si vous choisissez sans faire de changement, ce changement n’est pas persistant. Il est dédié à votre référentiel local mais pas à la télécommande (ce peut être ce dont vous avez besoin dans certains cas).

En savoir plus sur les bases de git par exemple ici

5
fejese

caisse: vous voulez l'utiliser lorsque vous dépendez d'un CHANGEMENT particulier dans une branche. Supposons que votre collègue ait enregistré certaines API à votre disposition et que vous puissiez vérifier que vous avez changé en une nouvelle succursale locale et commencer à travailler sur votre modification.

Cherrypick: vous voulez appliquer un changement particulier à votre branche locale ou à une branche de publication particulière, puis vous cherrypick. Imaginez que vous ayez un correctif dans votre version 1.1 et que vous souhaitiez appliquer ce correctif/CHANGE à votre branche 2.0, vous pouvez simplement le sélectionner. Cela créera un nouveau CHANGEMENT dans votre branche 2.0 contenant le correctif.

voici une représentation graphique: http://think-like-a-git.net/sections/rebase-from-the-ground-up/cherry-picking-explained.html

2
Matt