Darsliklar GIT Restore

GIT GIT Restore

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 restorefaylni 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.