git pull în Git

Descarcă și integrează într-un singur pas modificările de pe server în ramura locală curentă.

Sintaxă comandă
git pull [opțiuni] [remote] [ramură]

Ce face git pull

Comanda git pull este o scurtătură automată pentru două comenzi consecutive: rulează mai întâi git fetch (pentru a descărca commit-urile noi), urmat imediat de git merge (pentru a îmbina acele modificări în ramura pe care lucrezi).

Opțiunea --rebase este foarte recomandată în echipe, deoarece reaplică modificările tale locale peste noile commit-uri venite de pe server, evitând crearea de merge commit-uri redundante de tipul „Merge branch ‘main’ of github.com”.

Opțiuni și argumente

Opțiune / Parametru Descriere
--rebase Integrează noile commit-uri prin rebase în loc de merge, păstrând un istoric curat și liniar.
--ff-only Refuză sincronizarea dacă nu este posibil un Fast-Forward simplu (previne crearea automată de commit-uri de îmbinare).
--autostash Salvează automat modificările locale nesalvate cu stash înainte de pull și le reaplică la final.

Exemple

Exemplul 1: Actualizarea ramurii principale prin rebase

Comanda recomandată zilnic pentru a începe lucrul cu cel mai recent cod.

git pull --rebase origin main

Ieșire în terminal

From https://github.com/dexter/proiect
 * branch            main       -> FETCH_HEAD
Successfully rebased and updated refs/heads/main.

Greșeli frecvente

  • Rularea git pull când ai fișiere modificate nesalvate în directorul de lucru: comanda se va opri cu eroare dacă modificările tale se intersectează cu cele descărcate. Fă un commit sau un git stash înainte de pull.

Comenzi înrudite

  • git fetch: Descarcă cele mai noi commit-uri și ramuri de pe serverul la distanță fără a modifica fișierele locale.
  • git push: Încarcă commit-urile locale pe serverul de la distanță (remote) pentru a fi partajate cu echipa.
  • git merge: Îmbină istoricul și modificările dintr-o altă ramură în ramura curentă.
  • git rebase: Reaplică commit-urile din ramura curentă peste o altă ramură, creând un istoric perfect liniar.