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 diffdupăgit addși mirarea că nu afișează nimic (dacă fișierele sunt în staging, trebuie să foloseștigit 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.