Git reset
Git reset
Git reset nima qiladi?
git reset buyrug‘i joriy branch’ingizni (HEAD) boshqa commit’ga ko‘chiradi.
Tanlangan parametrga qarab, u qaysi o‘zgarishlar stage qilinganini ham o‘zgartirishi yoki hatto ishchi katalogingizdagi o‘zgarishlarni o‘chirib yuborishi mumkin.
Undan commit’larni bekor qilish, fayllarni stage’dan chiqarish yoki tarixingizni tartibga keltirish uchun foydalaning.
Git reset buyruqlari va parametrlarining qisqacha mazmuni
git reset --soft <commit>- HEAD’ni commit’ga ko‘chirish, o‘zgarishlarni stage holatida saqlashgit reset --mixed <commit>- HEAD’ni commit’ga ko‘chirish, o‘zgarishlarni stage’dan chiqarish (standart)git reset --hard <commit>- HEAD’ni commit’ga ko‘chirish, barcha o‘zgarishlarni bekor qilishgit reset <file>- Faylni stage’dan chiqarish (unstage)git log --oneline- Commit tarixini ko‘rsatish
Reset qilinadigan commit’ni qanday topish mumkin
Avval qaytmoqchi bo‘lgan commit’ingizni topishingiz kerak.
Commit tarixingizning qisqacha ko‘rinishini ko‘rish uchun git log --oneline buyrug‘idan foydalaning:

2-qadam: Repozitoriyni o‘sha bosqichga qaytaring:

Oldingi bobdan so‘ng commit tariximizda qaytishimiz mumkin bo‘lgan qism paydo bo‘ldi.
Keling, buni reset yordamida qilib ko‘raylik.
Git reset: log’dan commit’ni topish
Avvalo, qaytmoqchi bo‘lgan nuqtamizni topishimiz kerak.
Buning uchun log’ni ko‘rib chiqishimiz kerak.
Juda uzun log ro‘yxatidan qochish uchun --oneline parametridan foydalanamiz, u har bir commit uchun bitta qatorda quyidagilarni ko‘rsatadi:
commit hash’ning birinchi yettita belgisi — reset buyrug‘imizda aynan shunga murojaat qilishimiz kerak.commit message(commit xabari)
Keling, reset qilmoqchi bo‘lgan nuqtamizni topaylik:
Misol
git log --oneline
e56ba1f (HEAD -> master) Revert "Just a regular update, definitely no accidents here..."
52418f7 Just a regular update, definitely no accidents here...
9a9add8 (origin/master) Added .gitignore
81912ba Corrected spelling error
3fdaa5b Merge pull request #1 from w3schools-test/update-readme
836e5bf (origin/update-readme, update-readme) Updated readme for GitHub Branches
daf4f7c (origin/html-skeleton, html-skeleton) Updated index.html with basic meta
facaeae (gh-page/master) Merge branch 'master' of https://github.com/w3schools-test/hello-world
e7de78f Updated index.html. Resized image
5a04b6f Updated README.md with a line about focus
d29d69f Updated README.md with a line about GitHub
e0b6038 merged with hello-world-images after fixing conflicts
1f1584e added new image
dfa79db updated index.html with emergency fix
0312c55 Added image to Hello World
09f4acd Updated index.html with a new line
221ec6e First release of Hello World!
Biz commit’ga qaytmoqchimiz: 9a9add8 (origin/master) Added .gitignore — narsalarni buzishni boshlashimizdan oldingi oxirgi commit.
Git Reset --soft
git reset --soft <commit> HEAD’ni ko‘rsatilgan commit’ga ko‘chiradi, lekin barcha o‘zgarishlaringizni stage holatida (index’da) saqlaydi.
Bu bir nechta commit’ni bittaga birlashtirmoqchi bo‘lsangiz yoki shunchaki tarixni qayta yozib, ishingizni commit qilishga tayyor holda saqlamoqchi bo‘lsangiz foydali.
Misol
git reset --soft 9a9add8
9a9add8’dan keyingi barcha o‘zgarishlar endi stage qilingan va yangi commit’ga tayyor.
Git Reset --mixed (standart)
git reset --mixed <commit> (yoki shunchaki git reset <commit>) HEAD’ni ko‘rsatilgan commit’ga ko‘chiradi va barcha o‘zgarishlarni stage’dan chiqaradi, lekin ularni ishchi katalogingizda saqlab qoladi.
Bu standart parametr bo‘lib, commit’ni “bekor qilib”, o‘zgarishlaringizni tahrirlash yoki qayta commit qilish uchun saqlab qolmoqchi bo‘lsangiz foydali.
Misol
git reset --mixed 9a9add8
9a9add8’dan keyingi barcha o‘zgarishlar endi stage’dan chiqarilgan, lekin hanuz fayllaringizda.
O‘zgarishlarni ko‘zdan kechirish
Git reset’ni ishga tushirgandan so‘ng hammasi kutilganidek ekaniga ishonch hosil qilish uchun o‘zgarishlaringizni ko‘zdan kechiring.
Maslahatlar va eng yaxshi amaliyotlar
Git reset’dan ehtiyotkorlik bilan foydalaning, chunki u commit tarixingizni qayta yozishi mumkin.
Masofaviy repozitoriyga o‘zgartirish kiritishdan oldin jamoangiz bilan kelishib oling.
Muammolarni bartaraf etish
Agar Git reset bilan muammolarga duch kelsangiz, repozitoriyingizning joriy holatini ko‘rish uchun git status buyrug‘idan foydalanib ko‘ring.
Ogohlantirishlar
Git reset’dan foydalanishda ehtiyot bo‘ling, chunki u o‘zgarishlarni o‘chirib yuborishi va commit tarixingizni qayta yozishi mumkin.
Undan faqat zarur bo‘lgandagina foydalaning.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!

GitHub
Bitbucket
GitLab