git diff — fayllardagi o’zgarishlarni aniq ko’rsatadigan buyruq. “Men nimani o’zgartirdim?” degan savolga u qator-baqator javob beradi: nima qo’shilgan, nima o’chirilgan. Commit qilishdan oldin o’zgarishlarni tekshirish — professional dasturchining muhim odati.
git diff — fayllardagi o’zgarishlarni satr darajasida ko’rsatadigan buyruq. U qaysi qatorlar qo’shilgan (
+) va o’chirilgan (-) ekanini aniqlaydi.
Tayyorlanmagan o’zgarishlar
git diff (parametrsiz) hali add qilinmagan o’zgarishlarni ko’rsatadi:
git diff
diff --git a/salom.txt b/salom.txt
Salom, UzbekDevs!
-Eski qator
+Yangi qator
- bilan boshlangan qator — o’chirilgan, + bilan — qo’shilgan. Bu working directory (hali tayyorlanmagan) o’zgarishlarni ko’rsatadi.
Tayyorlangan o’zgarishlar
add qilingandan keyin git diff bo’sh chiqadi — chunki o’zgarish staging’ga o’tdi. Tayyorlangan o’zgarishlarni ko’rish uchun --staged ishlatiladi:
git add salom.txt
git diff --staged
diff --git a/salom.txt b/salom.txt
-Eski qator
+Yangi qator
git diff --staged (yoki --cached) — add qilingan, ammo hali commit qilinmagan o’zgarishlarni ko’rsatadi. Bu commit’dan oldin oxirgi tekshiruv uchun ideal.
diff variantlari
git diff ning turli shakllarini jadvalda ko’ramiz:
| Buyruq | Nimani ko’rsatadi |
|---|---|
git diff |
tayyorlanmagan o’zgarishlar |
git diff --staged |
tayyorlangan (add qilingan) |
git diff HEAD |
barcha o’zgarishlar |
git diff abc123 def456 |
ikki commit orasidagi farq |
Ikki commit’ni solishtirish
git diff ikki commit orasidagi farqni ham ko’rsatadi:
git diff 9f8e7d6 a1b2c3d
diff --git a/salom.txt b/salom.txt
+Salomlashuv qo'shildi
Ikki commit hash’i berilganda, Git ular orasida nima o’zgarganini ko’rsatdi. Bu tarixdagi ikki nuqtani solishtirishda foydali.
Xulosa
Bu bo’limda git diff bilan tayyorlanmagan, --staged bilan tayyorlangan o’zgarishlarni va ikki commit’ni solishtirishni ko’rib chiqdik. git diff — o’zgarishlarni commit’dan oldin tekshirishning quroli. Keyingi darsda .gitignore bilan keraksiz fayllarni e’tiborsiz qoldirishga o’tamiz.