git restore — o’zgarishlarni bekor qilib, faylni oldingi holatiga qaytaradigan buyruq. Xato o’zgartirish kiritdingizmi yoki noto’g’ri faylni tayyorladingizmi — git restore uni qaytaradi. Bu Git’ning “orqaga qaytish” tugmasidir.
git restore — faylni oxirgi commit holatiga qaytaradigan yoki uni staging’dan olib tashlaydigan zamonaviy buyruq. U tasodifiy o’zgarishlarni bekor qilishda ishlatiladi.
O’zgarishni bekor qilish
Agar faylni o’zgartirdingiz-u, uni bekor qilmoqchi bo’lsangiz, git restore faylni oxirgi commit holatiga qaytaradi:
git restore salom.txt
[salom.txt oxirgi saqlangan holatiga qaytarildi]
git restore salom.txt faylga kiritilgan, hali commit qilinmagan o’zgarishlarni butunlay bekor qildi. Diqqat: bu amal qaytarib bo’lmaydi — saqlanmagan o’zgarishlar yo’qoladi.
Staging’dan olib tashlash
Agar faylni git add qildingiz-u, uni staging’dan qaytarmoqchi bo’lsangiz, --staged ishlatiladi:
git add salom.txt
git restore --staged salom.txt
[salom.txt staging area dan olib tashlandi]
git restore --staged faylni staging’dan oldi, ammo o’zgarishlarni saqladi (working directory’da qoladi). Ya’ni “add ni bekor qildim, lekin o’zgarishlarim turibdi”. Bu git add ni ortga qaytarishning to’g’ri usuli.
restore variantlari
git restore ning asosiy shakllarini jadvalda ko’ramiz:
| Buyruq | Vazifasi |
|---|---|
git restore fayl |
o’zgarishni bekor qiladi |
git restore --staged fayl |
staging’dan oladi (o’zgarish qoladi) |
git restore --source=HEAD~1 fayl |
oldingi commit holatiga qaytaradi |
Eski usul: checkout
Ilgari bu vazifalar uchun git checkout ishlatilardi (masalan, git checkout -- salom.txt). Zamonaviy Git esa aniqroq ikki buyruqni joriy qildi: git restore (fayllarni qaytarish) va git switch (tarmoq almashtirish). git checkout hali ham ishlaydi, ammo yangi buyruqlar tushunarliroq va tavsiya etiladi.
Xulosa
Bu bo’limda git restore bilan o’zgarishni bekor qilish, --staged bilan add’ni qaytarish va eski checkout bilan farqini ko’rib chiqdik. git restore — xatolarni tuzatishning xavfsiz quroli. Keyingi darsda tarmoqlar (branch) — Git’ning eng kuchli imkoniyatiga o’tamiz.