Skip to content

Cum să vezi diferențele cu git diff — Ghid complet

DodaTech Updated 2025-01-15 3 min read

In this tutorial, you'll learn about Cum să vezi diferențele cu git diff. We cover key concepts, practical examples, and best practices.

În acest ghid vei învăța cum să folosești git diff pentru a vizualiza modificările din repository, inclusiv --staged, --cached și compararea între branch-uri.

The Problem

Nu poți vedea exact ce s-a schimbat înainte de a face commit sau push. git diff îți arată linie cu linie modificările, ajutându-te să eviți commit-uri incomplete sau greșite.

The Wrong Way

# Faci commit orb, fără să verifici ce s-a schimbat
git add .
git commit -m "fix: diverse"
# Surpriză: ai inclus fișiere greșite

Fără git diff, riști să incluzi în commit fișiere temporare, token-uri sau cod netestat.

The Right Way

# Modificări necommitate (working directory)
git diff

# Modificări din staging
git diff --staged

# Ultimul commit
git diff HEAD~1 HEAD

# Între două branch-uri
git diff main..feature

Step-by-Step Fix

1. Modificări necommitate (working tree)

Arată diferențele dintre working directory și staging:

git diff

Output:

diff --git a/index.html b/index.html
index a1b2c3d..d4e5f6g 100644
--- a/index.html
+++ b/index.html
@@ -10,6 +10,7 @@
+    <nav>Navigare noua</nav>

2. Modificări din staging (--staged)

Arată ce urmează să fie committat:

git diff --staged

--staged și --cached sunt sinonime.

3. Compară commit-uri

# Între două commit-uri specifice
git diff a1b2c3d..d4e5f6g

# Compară cu commit-ul anterior
git diff HEAD~1 HEAD

4. Compară branch-uri

# Diferențele dintre main și feature
git diff main..feature

# Ce are main dar nu are feature
git diff main...feature

5. Diferențe doar pentru un fișier

git diff -- index.html
git diff main..feature -- src/

6. Statistică sumară

git diff --stat

Output:

 index.html | 15 ++++++++++++---
 style.css  |  5 +++++
 2 files changed, 17 insertions(+), 3 deletions(-)

Prevention Tips

  • Folosește git diff înainte de git add pentru a verifica modificările
  • Folosește git diff --staged înainte de git commit pentru verificare finală
  • Compară cu branch-ul principal înainte de pull request
  • Folosește --stat pentru o vedere de ansamblu rapidă
  • Configurează un diff tool: git config --global diff.tool vscode

Common Mistakes

  1. Confuzia între --staged și --cached — sunt sinonime, ambele arată staging area
  2. Omisiunea lui .. la compararea branch-urilorgit diff main feature vs git diff main..feature
  3. Interpretarea greșită a semnelor +/-+ înseamnă linii adăugate, - înseamnă linii șterse
  4. Diff pe fișiere binare — Git nu poate face diff util pe imagini sau binare

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: Modifică un fișier, adaugă-l în staging, apoi mai modifică-l. Folosește git diff și git diff --staged pentru a vedea diferențele dintre cele două stări.

FAQ

### Ce diferență este între git diff și git diff --staged?

git diff arată modificările din working directory care nu sunt încă în staging. git diff --staged arată modificările care sunt deja în staging și urmează să fie committate.

Cum compar două branch-uri cu git diff?

Folosește git diff branch1..branch2 pentru a vedea diferențele dintre ambele, sau git diff branch1...branch2 pentru a vedea ce are branch2 dar nu are branch1.

Ce este git diff --cached?

Este un sinonim pentru git diff --staged. Ambele comenzi arată diferențele dintre staging area și ultimul commit.

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