A változásokat a diff paranccsal tudjuk megnézni.
Például:
git diff
Így önmagában kiadva az utolsó commit óta változtatásainkat láthatjuk. Ha már staged állapotba tettünk egy fájl, ezek nem látszanak.
Ha a staged állapotú fájlokat is szeretnénk látni, használjuk --cached kapcsolót:
git diff --cached
Ha elvégezzük a commit-ot, akkor már itt sem látszik a különbség. Ebben az esetben meg kell adni annak a két commit-nak az azonosítóját, ami között szeretnénk a különbséget látni. Például:
git diff 367a 5494
Több commit közötti különbséget is megnézhetünk. Mindig az elsőként megadott commit-hoz történik a hasonlítás.
Ha csak azt szeretnénk látni, milyen fájlok változtak:
git diff --name-only
A szűrők a --diff-filter kapcsolóval állíthatók be.
Példa a törölt fájlok kizárására:
git diff --diff-filter=d HEAD^..
Szintaxis:
git diff --stat commit1 commit2
Példák:
git diff --stat 887a e671
git --no-pager diff --stat 887a e671
git diff --stat 887a HEAD^
git --no-pager diff --stat 887a HEAD^
Készítsünk egy hellodiff projektkönyvtárat, majd lépjünk be a könyvtárba.
mkdir hellodiff cd hellodiff
Hozzunk létre egy gyumolcsok.txt nevű fájlt. Írjuk bele az alma szót.
alma
Készítsünk Git tárolót és tároljuk az állományt:
git init git add gyumolcsok.txt git commit -m "Kezdés"
Most adjuk az almához egy körtét:
alma körte
Mentsük el, és nézzük meg az eredményt:
git diff
A lehetséges kimenet:
$ git diff diff --git a/gyumolcsok.txt b/gyumolcsok.txt index 9c9acdc..2b93b27 100644 --- a/gyumolcsok.txt +++ b/gyumolcsok.txt @@ -1 +1,2 @@ alma +körte
Most adjuk helyezzük újra stage állapotba a gyumolcsok.txt állományba:
git add gyumolcsok.txt
Ha újra megnézzük a különbségeket, nem találunk:
git diff
Most használjuk a --cached kapcsolót.
git diff --cached
Újra látszik a különbség:
$ git diff --cached diff --git a/gyumolcsok.txt b/gyumolcsok.txt index 9c9acdc..2b93b27 100644 --- a/gyumolcsok.txt +++ b/gyumolcsok.txt @@ -1 +1,2 @@ alma +körte
Commit után a diff újra nem mutat semmit a --cached kapcsolóval sem. A diff nem tudja mihez képest kellene különbséget mutatnia.
Ha most megadjuk a két commit azonosítóját, akkor a különbség újra látszik. Nem szükséges a teljes azonosító megadása, adjunk meg most 4 karaktert mindkét commit-ból:
git diff 367a 5494 diff --git a/gyumolcsok.txt b/gyumolcsok.txt index 9c9acdc..2b93b27 100644 --- a/gyumolcsok.txt +++ b/gyumolcsok.txt @@ -1 +1,2 @@ alma +körte
Készítsünk egy Python programot, ami gyümölcsök neveit írja a képernyőre.
Először csak az „alma” szót írassuk ki:
print('alma')
Készítsünk Git tárolót a projektből, majd tároljunk egy pillanatképet:
git init git status -u git add . git status git commit -m "Kezdés"
Most fejlesszük tovább a programunkat. Most írassuk ki a „körte” szót is:
print('alma') print('körte')
Most futtassuk a git diff parancsot:
git diff
Lehetséges kimenet:
$ git diff diff --git a/main.py b/main.py index 88af617..8854325 100644 --- a/main.py +++ b/main.py @@ -1 +1,2 @@ print('alma') +print('körte')
Ha tároljuk a változásokat a szimpla git diff parancs hatására már nem látszanak a változások.
Ha szeretnénk ezek után megnézni a különbségeket, meg kell mondanunk, hogy mihez képest. A git log paranccsal nézzük meg a commitok azonosítóját:
git --no-pager log --oneline
Lehetséges kimenet:
git --no-pager log --oneline 138c5b6 (HEAD -> master) Körte hozzáadva 15e1a71 Kezdés
A különbséget a „Kezdés” óta szeretnénk megnézni, ezért írjuk a következőt:
git --no-pager diff 15e1
Lehetséges kimenet:
git --no-pager diff 15e1 diff --git a/main.py b/main.py index 88af617..8854325 100644 --- a/main.py +++ b/main.py @@ -1 +1,2 @@ print('alma') +print('körte')