git diff în Git

Afișează diferențele de cod (linie cu linie) între directorul de lucru, staging sau două versiuni diferite.

Sintaxă comandă
git diff [opțiuni] [commit/ramură...]

Ce face git diff

Comanda git diff evidențiază exact ce caractere și rânduri ai modificat de la ultima salvare (cu verde rândurile adăugate + și cu roșu cele șterse -).

Fără parametri, git diff compară directorul de lucru cu zona de staging (arată ce ai modificat dar NU ai adăugat încă prin git add). Cu --staged (sau --cached), compară fișierele pregătite din staging cu ultimul commit.

Opțiuni și argumente

Opțiune / Parametru Descriere
(fără parametri) Arată modificările din directorul de lucru care nu au fost încă trecute în staging.
--staged, --cached Arată modificările din zona de staging care vor intra în următorul commit.
commit1 commit2 Compară diferențele totale dintre două commit-uri sau două ramuri (ex. main feature).
--stat Afișează un rezumat numeric compact: fișierele modificate și numărul de rânduri adăugate/șterse.
-w, --ignore-all-space Ignoră modificările de spațiere, indentare sau sfârșit de linie (CRLF/LF).

Exemple

Exemplul 1: Verificarea modificărilor nesalvate în staging

Adăugăm o linie într-un fișier și inspectăm diferențele.

                    git init -b main demo_diff >/dev/null
                    cd demo_diff
                    git config user.name "Test" && git config user.email "test@exemplu.ro"
                    echo -e "linia 1
linia 2" > fisier.txt
                    git add fisier.txt && git commit -m "init" >/dev/null
                    echo "linia 3" >> fisier.txt
                    git diff | grep -E '^\+[a-z]'

Rezultat

+linia 3

Greșeli frecvente

  • Rularea git diff după git add și mirarea că nu afișează nimic (dacă fișierele sunt în staging, trebuie să folosești git diff --staged).

Comenzi înrudite

  • git status: Afișează starea fișierelor: modificate, pregătite pentru commit (staged) sau neurmărite (untracked).
  • git show: Afișează informații detaliate și diferențele de cod (diff) ale unui commit, etichetă sau fișier istoric.
  • git log: Afișează istoricul cronologic al commit-urilor, cu autor, dată, hash și mesaj.