Git tiklash (recovery)
Git tiklash (recovery)
Git’da tiklash (recovery) nima?
Git’da tiklash — yo‘qolgan commit’lar, branch’lar yoki fayllarni qaytarib olish demakdir.
Git so‘nggi o‘zgarishlar qaydini yuritadi, shuning uchun xatolarni hatto reset yoki o‘chirishdan keyin ham bekor qilishingiz mumkin.
Git’da tiklashdan qachon foydalanish kerak
Git’da tiklashdan quyidagi hollarda foydalaning:
- Branch yoki faylni tasodifan o‘chirib yuborganingizda
- Branch’ingizni oldingi commit’ga reset qilib, o‘zgarishlarni yo‘qotganingizda
- Yo‘qolgan commit’lar yoki o‘zgarishlarni tiklashingiz kerak bo‘lganda
git reflog yordamida yo‘qolgan commit’larni tiklash
git reflog branch’lar uchidagi o‘zgarishlarni qayd etadi va yo‘qolgan commit’larni topish imkonini beradi.
Misol: Reflog’ni ko‘rsatish
git reflog
e56ba1f (HEAD -> master) HEAD@{0}: commit: Revert "Just a regular update, definitely no accidents here..."
52418f7 HEAD@{1}: commit: Just a regular update, definitely no accidents here...
9a9add8 (origin/master) HEAD@{2}: commit: Added .gitignore
81912ba HEAD@{3}: commit: Corrected spelling error
3fdaa5b HEAD@{4}: merge: Merge pull request #1 from w3schools-test/update-readme
836e5bf HEAD@{5}: commit: Updated readme for GitHub Branches
...
Ro‘yxatdan tiklamoqchi bo‘lgan commit hash’ini toping.
O‘chirilgan branch’ni tiklash
Agar branch’ni o‘chirgan bo‘lsangiz, lekin commit’lar hali reflog’da bo‘lsa, uni qayta yaratishingiz mumkin:
Misol: Branch’ni tiklash
git checkout -b branch-name <commit-hash>
Switched to a new branch 'branch-name'
Bu branch’ni siz ko‘rsatgan commit’da qayta tiklaydi.
O‘chirilgan yoki o‘zgartirilgan faylni tiklash
Agar faylni o‘chirgan yoki o‘zgartirgan bo‘lsangiz va uni qaytarib olmoqchi bo‘lsangiz, git restore buyrug‘idan foydalaning:
Misol: Faylni tiklash
git restore filename.txt
Bu faylni eng so‘nggi commit’dagi holatiga qaytaradi.
Hard reset’dan keyin tiklash
Agar git reset --hard buyrug‘idan foydalanib, commit’larni yo‘qotgan bo‘lsangiz, ularni topish va tiklash uchun reflog’dan foydalanishingiz mumkin:
Misol: Hard reset’ni bekor qilish
git reflog
e56ba1f (HEAD -> master) HEAD@{0}: commit: Revert "Just a regular update, definitely no accidents here..."
52418f7 HEAD@{1}: commit: Just a regular update, definitely no accidents here...
9a9add8 (origin/master) HEAD@{2}: commit: Added .gitignore
81912ba HEAD@{3}: commit: Corrected spelling error
3fdaa5b HEAD@{4}: merge: Merge pull request #1 from w3schools-test/update-readme
836e5bf HEAD@{5}: commit: Updated readme for GitHub Branches
...
git reset --hard HEAD@{2}
HEAD is now at 9a9add8 Added .gitignore
Bu branch’ingizni o‘sha paytdagi holatiga qaytaradi.
Maslahatlar va eng yaxshi amaliyotlar
- Ishni yo‘qotmaslik uchun o‘zgarishlaringizni muntazam ravishda commit qiling
- Yo‘qolgan commit’larni topish uchun
git reflogbuyrug‘idan foydalaning - O‘chirilgan yoki o‘zgartirilgan fayllarni tiklash uchun
git restorebuyrug‘idan foydalaning
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
