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.
- Actualizează ramura de lucru locală actuală (ramură verificată în prezent)
- 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țigit pull origin
saugit 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.