git fetch în Git

Descarcă cele mai noi commit-uri și ramuri de pe serverul la distanță fără a modifica fișierele locale.

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

Ce face git fetch

Comanda git fetch este modalitatea 100% sigură de a afla ce au lucrat colegii tăi pe server. Ea descarcă toate noile obiecte și actualizează ramurile de urmărire (remote tracking branches, cum ar fi origin/main), dar NU atinge fișierele tale din directorul de lucru și nu încearcă nicio îmbinare automată.

După rularea lui git fetch, poți inspecta ce s-a schimbat folosind git log origin/main sau git diff main origin/main înainte de a decide să integrezi codul.

Opțiuni și argumente

Opțiune / Parametru Descriere
--all Descarcă noutățile de pe toate serverele remote configurate în proiect.
-p, --prune Șterge din lista locală referințele către ramurile care au fost șterse între timp de pe server.
--tags Descarcă toate etichetele (tags) noi de pe server.

Exemple

Exemplul 1: Descărcarea noutăților și curățarea ramurilor șterse de colegi

Opțiunea –prune menține lista locală de ramuri remote curată.

git fetch origin --prune

Ieșire în terminal

remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (8/8), done.
From https://github.com/dexter/proiect
   4a1b2c3..8f9e0d1  main       -> origin/main
 - [deleted]         (none)     -> origin/feature/finalizat

Greșeli frecvente

  • Confuzia între fetch și pull: după git fetch, fișierele din folderul tău NU se schimbă automat! Pentru a le actualiza, trebuie să faci git merge origin/main sau să folosești direct git pull.

Comenzi înrudite

  • git pull: Descarcă și integrează într-un singur pas modificările de pe server în ramura locală curentă.
  • git remote: Gestionează lista serverelor și depozitelor la distanță conectate la proiectul local.
  • git merge: Îmbină istoricul și modificările dintr-o altă ramură în ramura curentă.