Skip to content

Cum să actualizezi repository-ul cu git pull — Ghid complet

DodaTech Updated 2025-01-15 2 min read

In this tutorial, you'll learn about Cum să actualizezi repository. We cover key concepts, practical examples, and best practices.

În acest ghid vei învăța cum să folosești git pull, diferența dintre pull și fetch, și opțiunea --rebase pentru a integra modificările remote fără a polua istoricul.

The Problem

git pull combină două operații — fetch și merge — ceea ce poate crea commit-uri de merge inutile. Înțelegerea diferenței dintre pull și fetch te ajută să controlezi cum integrezi schimbările remote.

The Wrong Way

git pull
# Apare un merge commit inutil în istoric

git pull implicit face merge, creând un commit de fuzionare chiar și când nu este necesar, poluând istoricul.

The Right Way

# Pull cu rebase în loc de merge
git pull --rebase

# Fetch + log + rebase manual (control total)
git fetch origin
git log --oneline HEAD..origin/main
git rebase origin/main

# Configurează rebase ca implicit
git config --global pull.rebase true

Step-by-Step Fix

1. Pull cu rebase (--rebase)

Înlocuiește merge-ul implicit cu rebase, creând un istoric linear:

git pull --rebase

Output:

Successfully rebased and updated refs/heads/main.

2. Pull cu merge (comportament implicit)

git pull
# sau explicit
git pull --no-rebase

3. Fetch + manual merge/rebase

Separă operațiile pentru control total:

# Pas 1: descarcă modificările
git fetch origin

# Pas 2: vezi diferențele
git log --oneline HEAD..origin/main

# Pas 3: alege cum integrezi
git merge origin/main    # sau
git rebase origin/main

4. Pull cu fast-forward doar (--ff-only)

Pull-ul eșuează dacă nu poate face fast-forward:

git pull --ff-only

5. Configurează pull.rebase global

git config --global pull.rebase true
git config --global rebase.autoStash true

Prevention Tips

  • Folosește git pull --rebase în loc de pull implicit
  • Separă fetch de merge/rebase pentru proiecte critice
  • Configurază pull.rebase = true global
  • Verifică git status înainte de pull
  • Stash-uiește modificările înainte de pull cu git stash push

Common Mistakes

  1. Confuzia între pull și fetch — pull face și merge, fetch doar descarcă
  2. Pull fără a face stash la modificările locale — poate cauza conflicte
  3. Merge commit-uri inutile din pull implicit — poluează istoricul
  4. Pull pe un branch diferit — verifică întotdeauna branch-ul curent

Aceste greșeli apar frecvent în lucrul cu Git. Contribuitorii DodaTech le-au identificat prin analiza proiectelor open-source și a sistemelor de producție.

Practice Exercise

Exercițiu: Clonează un repository cu --depth 1, apoi folosește git fetch origin urmat de git log --oneline HEAD..origin/main și git pull --rebase pentru a înțelege fluxul complet.

FAQ

### Care este diferența dintre git pull și git fetch?

git fetch descarcă modificările de la remote dar nu le integrează în branch-ul tău local. git pull face fetch urmat de merge (sau rebase), integrând automat modificările. Fetch este mai sigur pentru că îți permite să revezi înainte de a integra.

Ce face git pull --rebase?

git pull --rebase face fetch și apoi rebase în loc de merge. Commit-urile tale locale sunt plasate deasupra celor remote, creând un istoric linear fără commit-uri de merge.

Cum configurez git pull să folosească rebase implicit?

Rulează git config --global pull.rebase true. După aceasta, git pull va face întotdeauna rebase în loc de merge. Poți adăuga și git config --global rebase.autoStash true pentru a face stash automat la modificările locale.

Construit de dezvoltatorii Doda Browser, DodaZIP și Durga Antivirus Pro. Uneltele DodaTech se integrează perfect cu Git pentru productivitate și securitate sporite.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro