หากคุณต้องการย้อนกลับไปยัง commit ก่อนหน้าใน Git โดยต้องการลบ commit ที่ผิดพลาดออกทั้งหมด
(เช่น ย้อนกลับไป 4 commit) คุณสามารถใช้คำสั่ง git reset
หรือ git revert
ได้ โดยมีรายละเอียดดังนี้:
ใช้ git reset
คำสั่งนี้จะย้อนกลับไปยัง commit ที่คุณต้องการและลบ commit หลังจากนั้นออกจากประวัติการ commit:
bash
git reset --hard HEAD~4
HEAD~4
หมายถึง 4 commit ก่อนหน้า HEAD ปัจจุบัน--hard
จะลบการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นตั้งแต่ commit ที่ย้อนกลับไป
หมายเหตุ: การใช้ --hard
จะทำให้การเปลี่ยนแปลงในพื้นที่ทำงาน (working directory) ของคุณหายไป หากคุณมีการเปลี่ยนแปลงที่ยังไม่ได้ commit คุณอาจจะสูญเสียข้อมูลเหล่านั้น
ใช้ git revert
หากคุณไม่ต้องการลบ commit แต่ต้องการสร้าง commit ใหม่ที่กลับการเปลี่ยนแปลงของ commit ก่อนหน้า คุณสามารถใช้คำสั่ง git revert
ดังนี้:
bash
git revert HEAD~4..HEAD
- คำสั่งนี้จะสร้าง commit ใหม่ที่เป็นการย้อนกลับการเปลี่ยนแปลงจาก commit ที่ 4 จนถึง HEAD ปัจจุบัน
สรุปขั้นแรก
- ใช้
git reset --hard HEAD~4
หากคุณต้องการลบ commit และไม่สนใจการเปลี่ยนแปลงที่เกิดขึ้น - ใช้
git revert HEAD~4..HEAD
หากคุณต้องการย้อนกลับการเปลี่ยนแปลงโดยไม่ลบประวัติการ commit
อย่าลืมสำรองข้อมูลหรือทำความเข้าใจเกี่ยวกับคำสั่งที่คุณใช้ก่อนที่จะดำเนินการ!
การติดตามผล
หลังจากที่คุณใช้คำสั่ง git reset
หรือ git revert
แล้ว คุณสามารถตรวจสอบประวัติการ commit และดูผลลัพธ์ได้ด้วยคำสั่ง git log
หรือคำสั่งอื่นๆ ตามนี้:
1. ใช้ git log
คำสั่งนี้จะแสดงประวัติการ commit ของคุณ:
bash
git log
- คุณจะเห็นรายชื่อ commit ที่แสดง SHA-1 hash, ชื่อผู้ commit, วันที่ และข้อความ commit
- หากคุณใช้
git reset --hard HEAD~4
คุณควรจะเห็นว่ามี commit ที่ล่าสุดถูกลบออกไป - หากคุณใช้
git revert
คุณจะเห็น commit ใหม่ที่สร้างขึ้นซึ่งทำการย้อนกลับการเปลี่ยนแปลงของ commit ที่ถูกย้อนกลับ
2. ใช้ git status
หากคุณใช้ git reset
แล้วคุณสามารถใช้คำสั่งนี้เพื่อตรวจสอบสถานะของพื้นที่ทำงานและการ staging:
bash
git status
- คำสั่งนี้จะแสดงว่าคุณอยู่ใน branch ไหน, มีการเปลี่ยนแปลงใดบ้างในพื้นที่ทำงาน และไฟล์ไหนที่ถูก staged สำหรับ commit
3. ใช้ git diff
หากต้องการดูการเปลี่ยนแปลงที่เกิดขึ้นก่อนและหลังการ reset หรือ revert สามารถใช้คำสั่งนี้:
bash
git diff
- คำสั่งนี้จะแสดงการเปลี่ยนแปลงที่เกิดขึ้นในไฟล์ต่างๆ หากมีการเปลี่ยนแปลง
4. ใช้ git reflog
ถ้าคุณใช้ git reset --hard
และต้องการกลับไปยัง commit ที่คุณเคยอยู่ก่อนหน้านี้ คุณสามารถใช้ git reflog
เพื่อดูการอ้างอิงถึง commit ที่คุณทำงานล่าสุด:
bash
git reflog
- คำสั่งนี้จะแสดงประวัติของ HEAD ที่คุณทำการเปลี่ยนแปลง ซึ่งจะช่วยให้คุณสามารถย้อนกลับไปยัง commit ที่คุณต้องการได้
สรุป
หลังจากใช้คำสั่ง reset หรือ revert ให้ใช้ git log
เพื่อตรวจสอบประวัติการ commit ว่าได้มีการเปลี่ยนแปลงตามที่คุณต้องการหรือไม่ และใช้คำสั่งอื่น ๆ เพื่อตรวจสอบสถานะหรือการเปลี่ยนแปลงที่เกิดขึ้นในไฟล์ต่าง ๆ ครับ
เพิ่มความคิดเห็นใหม่