web-dev-qa-db-fra.com

Quelle est la différence entre "git fetch && git checkout" et "git checkout" uniquement?

Devrions-nous toujours faire comme: 

git fetch && git checkout

Ou seulement, 

git checkout

?

Par exemple, lors de l'extraction d'une branche dans bitbucket, ils fournissent la commande sous la forme: 

 enter image description here

git fetch && git checkout develop

Mais pourquoi est-ce nécessaire si 

git checkout

va faire la même chose, n'est-ce pas? 

3
Mario Ruiz

Comme je dois utiliser Bitbucket quotidiennement pour plusieurs projets et plusieurs branches, je vais vous donner ma recommandation. 

Si vous extrayez de Bitbucket, c’est-à-dire que vous créez une branche, vous devriez pouvoir utiliser les commandes qu’ils vous ont fournies au fur et à mesure que vous les avez collées dans votre exemple. Cependant, comme il est probable qu'après la vérification initiale, vous changerez de branche, que vous créiez des branches et que votre section locale ne se synchronise plus, je vous recommande ce qui suit à l'aide de votre terminal. :

  1. git checkout develop ou quelle que soit la branche dont vous avez besoin
  2. git fetch && git pull c'est-à-dire aller chercher toutes les branches et les dernières modifications, ainsi que toutes les modifications de la branche sur laquelle vous vous trouvez. 

Oui, cela semble être un travail en double, mais en travaillant avec Bitbucket, je dirai que c’est le moyen le plus sûr et le plus sûr d’avoir les dernières informations de la branche sur laquelle vous travaillez. 

Cela étant dit, vous devriez toujours créer des branches et ne jamais appuyer directement sur vos branches develop ou master

Supposons donc que vous êtes sur une branche develop et que vous avez résolu le problème ci-dessus en consultant la branche, puis en recherchant et en extrayant la dernière, vous créeriez une branche à partir de cette branche principale à l'aide de git checkout -b my-feature-branch standard

Exemple de ce que nous faisons dans ma boutique:

  1. git checkout develop 
  2. git fetch && git pull
  3. git checkout -b feature/JIRA_ISSUE_NUMBER-update-layout-for-this-page

Vous avez maintenant extrait la branche de développement, extrait toutes les dernières modifications et branches distantes et créé une branche de fonctions à partir de cette branche de développement. 

J'espère que cela t'aides. 

2
isaac weathers

Pour être spécifique à votre question "lors de l'extraction d'une branche dans bitbucket, ils fournissent la commande sous la forme: git fetch && git checkout develop ". En effet, la branche de développement créée sur le cloud ou à distance ne sera pas disponible sur votre ordinateur local tant que vous n'allez pas récupérer les mises à jour à distance.

Ainsi, pour pouvoir basculer ou passer à une branche en développement, vous devez d’abord extraire toutes les mises à jour à distance pour connaître l’existence de la branche en développement. Une fois que vous effectuez une récupération, votre responsable local sera informé de la création de la nouvelle branche à distance; et lorsque vous effectuez un paiement à développer, il va configurer une nouvelle branche locale pour suivre sa partie distante.

2
sumit singh

git fetch enregistrera toutes les modifications depuis votre emplacement distant

git checkout vous permettra de changer de branche (ou de restaurer vos fichiers à un état antérieur, en fonction de votre utilisation)

Utilisez fetch et checkout pour changer de branche et extraire tous les fichiers mis à jour. Utilisez uniquement la validation pour changer de succursale, mais continuez à travailler sur votre version locale.

1
Zac R.

git fetch extrait les références aux branches distantes en cours de création sur (dans ce cas) BItbucket. 

git checkout déplace votre répertoire actuel dans une branche spécifique ou un commit spécifique (selon le paramètre).

Que se passe t-il ici? Lorsque vous créez une branche sur votre bitbucket, ils vous fournissent cette commande car: 1- La branche a été créée sur le référentiel REMOTE. Votre copie locale du référentiel n’a pas encore cette nouvelle branche. C’est la raison pour laquelle la commande git fetch est utilisée… .. 2- 2- Bitbucket suppose que, puisque vous venez de créer cette nouvelle branche, vous allez y travailler immédiatement et vous devez le signaler à votre référentiel local. C’est la raison pour laquelle la commande git checkout est utilisée.

Ce n'est pas le seul moyen d'y parvenir. Vous pouvez, par exemple, éviter cette commande git fetch en utilisant:

git checkout -b {new_branch_name} && git pull Origin {new_branch_name}

Ce n’est pas le moyen le plus pratique, mais vous donnera probablement une meilleure idée du fonctionnement de ces commandes.

1
javierojeda

git fetch met à jour le Origin/<branch_name> avec la télécommande. git checkout peut être utilisé pour changer de branche. Les deux n'ont aucune corrélation, sauf si vous essayez de passer à une branche récemment créée dans la télécommande et que sa version locale n'existe pas sur votre système.

Cependant, quand vous faites git pull (ou git fetch et git rebase) puis git checkout -b <another_branch> pour en créer un, vous vous assurez que votre nouvelle branche est dotée de la dernière version du code stable.

1
hspandher