git pull este o comandă Git utilizată pentru actualizarea versiunii locale a unui depozit de la distanță.

Este una dintre cele patru comenzi care solicită interacțiunea în rețea de către Git. În mod implicit, git pull face două lucruri.

  1. Actualizează ramura de lucru locală actuală (ramură verificată în prezent)
  2. Actualizează ramurile de urmărire la distanță pentru toate celelalte ramuri.

git pull prelua (git fetch) noile comisii și fuziuni (git merge) acestea în filiala dvs. locală.

Sintaxa acestei comenzi este următoarea:

# General format
git pull OPTIONS REPOSITORY REFSPEC

# Pull from specific branch
git pull REMOTE-NAME BRANCH-NAME

in care:

  • OPȚIUNI sunt opțiunile de comandă, cum ar fi --quiet sau --verbose. Puteți citi mai multe despre diferitele opțiuni din Documentație Git
  • REPERTORIU este adresa URL a repo. Exemplu: https://github.com/Routech/Routech.git
  • REFSPEC specifică ce referințe de preluat și ce referințe locale de actualizat
  • NUME DE LA DISTANȚĂ este numele depozitului dvs. la distanță. De exemplu: origine.
  • NUMEU DE SUCURSALĂ este numele filialei tale. De exemplu: dezvolta.

Notă

Dacă aveți modificări necomandate, partea de îmbinare a git pull comanda va eșua și filiala dvs. locală va fi neatinsă.

Astfel, ar trebui comiteți întotdeauna schimbările într-o ramură înainte de a trage confirmări noi dintr-un depozit la distanță.

Cuprins

Folosind git pull

Utilizare git pull pentru a actualiza un depozit local din depozitul la distanță corespunzător. Ex: În timp ce lucrați la nivel local master, a executa git pull pentru a actualiza copia locală a master și actualizați celelalte ramuri de urmărire la distanță. (Mai multe informații despre filialele de urmărire la distanță în secțiunea următoare.)

Dar, trebuie să ții cont de câteva lucruri pentru ca acest exemplu să fie adevărat:

Depozitul local are un depozit la distanță conectat

  • Verificați acest lucru executând git remote -v
  • Dacă există mai multe telecomenzi, git pull s-ar putea să nu fie suficiente informații. S-ar putea să trebuiască să intrați git pull origin sau git pull upstream.

Sucursala la care sunteți verificat în prezent are o sucursală de urmărire la distanță corespunzătoare

  • Verificați acest lucru executând git status. Dacă nu există o ramură de urmărire la distanță, Git nu știe de unde să extragă informațiile din.

Control versiune distribuită

Git este un Sistem de control al versiunii distribuite (DVCS). Cu DVCS, dezvoltatorii pot lucra la același fișier în același timp în medii separate. După împingând codul până la depozitul la distanță partajat, alți dezvoltatori pot Trage cod modificat.

Interacțiuni de rețea în Git

Există doar patru comenzi care solicită interacțiuni de rețea în Git. Un depozit local nu are cunoștință de modificările aduse depozitului la distanță până când nu există o cerere de informații. Și un depozit la distanță nu are cunoștință de modificările locale până când nu sunt împinse comitetele.

Cele patru comenzi de rețea sunt:

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

Filiale în DVCS

Când lucrați cu Git, se poate simți că există o mulțime de copii ale aceluiași cod plutind peste tot. Există diferite versiuni ale aceluiași fișier pe fiecare ramură. Și, copii diferite ale acelorași ramuri pe computerul fiecărui dezvoltator și pe telecomandă. Pentru a urmări acest lucru, Git folosește ceva numit ramuri de urmărire la distanță.

Dacă executați git branch --all într-un depozit Git, ramurile de urmărire la distanță apar în roșu. Acestea sunt copii numai în citire ale codului așa cum apare pe telecomandă. (Când a fost ultima interacțiune de rețea care ar fi adus informații la nivel local? Amintiți-vă când au fost actualizate ultima dată aceste informații. Informațiile din ramurile de urmărire la distanță reflectă informațiile din acea interacțiune.)

Cu ramuri de urmărire la distanță, puteți lucra în Git pe mai multe ramuri fără interacțiune în rețea. De fiecare dată când executați git pull sau git fetch comenzi, actualizați ramuri de urmărire la distanță.

git fetch plus git merge

git pull este o comandă combinată, egală cu git fetch + git merge.

git fetch

Pe cont propriu, git fetch actualizează toate ramurile de urmărire la distanță din depozitul local. Nicio modificare nu se reflectă de fapt asupra oricărei ramuri de lucru locale.

git merge

Fără argumente, git merge va îmbina ramura de urmărire la distanță corespunzătoare cu ramura de lucru locală.

git pull

git fetch actualizează ramurile de urmărire la distanță. git merge actualizează ramura curentă cu ramura de urmărire la distanță corespunzătoare. Folosind git pull, primiți ambele părți ale acestor actualizări. Dar asta înseamnă că dacă sunteți verificat feature ramură și executați git pull, când plătiți la master, orice actualizări noi nu vor fi incluse. Ori de câte ori plătiți către o altă sucursală care poate avea modificări noi, este întotdeauna o idee bună să executați git pull.

git pull in IDEs

Limba comună în alte IDES poate să nu includă cuvântul pull. Dacă ai grijă de cuvinte git pull dar nu-i vedeți, căutați cuvântul sync in schimb.

preluarea unui PR la distanță (Pull Request) în repo local

În scopul revizuirii și altele, PR-urile de la distanță ar trebui să fie preluate la repo local. Poți să folosești git fetch comanda după cum urmează pentru a realiza acest lucru.

git fetch origin pull/ID/head:BRANCHNAME

ID este ID-ul cererii de extragere și BRANCHNAME este numele sucursalei pe care doriți să o creați. Odată ce filiala a fost creată, puteți utiliza git checkout pentru a trece la acel brach.

Alte resurse pe git în guide.freecodecamp.org