Explication de Git Pull

git pull est une commande Git utilisée pour mettre à jour la version locale d'un référentiel à partir d'un distant.

C'est l'une des quatre commandes qui déclenche une interaction réseau par Git. Par défaut, git pullfait deux choses.

  1. Met à jour la branche de travail locale actuelle (branche actuellement extraite)
  2. Met à jour les branches de suivi à distance pour toutes les autres branches.

git pullrécupère ( git fetch) les nouveaux commits et les fusionne ( git merge) dans votre branche locale.

La syntaxe de cette commande est la suivante:

# General format git pull OPTIONS REPOSITORY REFSPEC # Pull from specific branch git pull REMOTE-NAME BRANCH-NAME

dans lequel:

  • OPTIONS sont les options de commande, telles que--quietou--verbose. Vous pouvez en savoir plus sur les différentes options dans la documentation Git
  • REPOSITORY est l'URL de votre dépôt. Exemple: //github.com/freeCodeCamp/freeCodeCamp.git
  • REFSPEC spécifie les références à récupérer et les références locales à mettre à jour
  • REMOTE-NAME est le nom de votre référentiel distant. Par exemple: origine .
  • BRANCH-NAME est le nom de votre succursale. Par exemple: développer .

Remarque

Si vous avez des modifications non validées, la partie de fusion de la git pullcommande échouera et votre branche locale restera intacte.

Ainsi, vous devez toujours valider vos modifications dans une branche avant d'extraire de nouvelles validations d'un référentiel distant.

Table des matières

  • En utilisant git pull
  • Contrôle de version distribué
  • git fetch + git merge
  • git pull dans les IDE

Utiliser git pull

Permet git pullde mettre à jour un référentiel local à partir du référentiel distant correspondant. Ex: tout en travaillant localement sur master, exécutez git pullpour mettre à jour la copie locale masteret mettre à jour les autres branches de suivi à distance. (Plus d'informations sur les branches de suivi à distance dans la section suivante.)

Mais, il y a quelques choses à garder à l'esprit pour que cet exemple soit vrai:

Le référentiel local a un référentiel distant lié

  • Vérifiez cela en exécutant git remote -v
  • S'il y a plusieurs télécommandes, les informations git pullpeuvent ne pas être suffisantes. Vous devrez peut-être entrer git pull originou git pull upstream.

La branche dans laquelle vous êtes actuellement extrait a une branche de suivi à distance correspondante

  • Vérifiez cela en exécutant git status. S'il n'y a pas de branche suivi à distance, Git ne sait pas où extraire des informations à partir .

Contrôle de version distribué

Git est un système de contrôle de version distribué (DVCS). Avec DVCS, les développeurs peuvent travailler sur le même fichier en même temps dans des environnements séparés. Après avoir poussé le code vers le référentiel distant partagé, d'autres développeurs peuvent extraire le code modifié.

Interactions réseau dans Git

Il n'y a que quatre commandes qui déclenchent des interactions réseau dans Git. Un référentiel local n'a pas connaissance des modifications apportées au référentiel distant jusqu'à ce qu'il y ait une demande d'informations. De plus, un référentiel distant n'a pas conscience des changements locaux tant que les validations ne sont pas poussées.

Les quatre commandes réseau sont:

  • git clone
  • git fetch
  • git pull
  • git push

Succursales dans DVCS

Lorsque vous travaillez avec Git, vous pouvez avoir l'impression que de nombreuses copies du même code flottent partout. Il existe différentes versions du même fichier sur chaque branche. Et, différentes copies des mêmes branches sur l'ordinateur de chaque développeur et sur la télécommande. Pour garder une trace de cela, Git utilise quelque chose appelé des branches de suivi à distance .

Si vous exécutez git branch --alldans un référentiel Git, les branches de suivi à distance apparaissent en rouge. Ce sont des copies en lecture seule du code tel qu'il apparaît sur la télécommande. (À quand remonte la dernière interaction réseau qui aurait apporté des informations localement? Rappelez-vous quand ces informations ont été mises à jour pour la dernière fois. Les informations contenues dans les branches de suivi à distance reflètent les informations de cette interaction.)

Avec les branches de suivi à distance , vous pouvez travailler dans Git sur plusieurs branches sans interaction avec le réseau. Chaque fois que vous exécutez des commandes git pullou git fetch, vous mettez à jour les branches de suivi à distance .

git fetch plus git merge

git pullest une commande combinée, égale à git fetch+ git merge.

git chercher

De lui-même, git fetchmet à jour toutes les branches de suivi distantes dans le référentiel local. Aucun changement n'est réellement reflété sur aucune des branches de travail locales.

git merge

Sans aucun argument, git mergefusionnera la branche de suivi à distance correspondante avec la branche de travail locale.

git pull

git fetchmet à jour les branches de suivi à distance. git mergemet à jour la branche actuelle avec la branche de suivi à distance correspondante. En utilisant git pull, vous obtenez les deux parties de ces mises à jour. Mais, cela signifie que si vous êtes extrait dans la featurebranche et que vous exécutez git pull, lorsque vous procédez à l'extraction master, aucune nouvelle mise à jour ne sera incluse. Chaque fois que vous passez à une autre branche qui peut avoir de nouvelles modifications, c'est toujours une bonne idée d'exécuter git pull.

git pull dans les IDE

Le langage commun dans d'autres IDES peut ne pas inclure le mot pull. Si vous recherchez les mots git pullmais ne les voyez pas, cherchez syncplutôt le mot .

récupérer un PR distant (Pull Request) dans le dépôt local

À des fins de révision et autres, les PRs à distance doivent être récupérés dans le dépôt local. Vous pouvez utiliser la git fetchcommande comme suit pour y parvenir.

git fetch origin pull/ID/head:BRANCHNAME

ID est l'ID de la demande d'extraction et BRANCHNAME est le nom de la branche que vous souhaitez créer. Une fois la branche créée, vous pouvez utiliser git checkoutpour passer à cette branche.

Autres ressources sur git dans guide.freecodecamp.org

  • Fusion de Git
  • Paiement Git
  • Git commit
  • Git cachette
  • Branche Git