Git Reset เป็นคำสั่งสำหรับย้อนการกระทำ หรือเข้าใจง่ายๆ คือเหมือนกับคำสั่ง undoing ในโปรแกรมอื่นๆ วิธีการใช้จะแสดงให้เห็นในตัวอย่างด้านล่าง โดยตัวอย่างมีการแก้ไขข้อมูลในไฟล์ที่ชื่อว่า README.txt และภาพด้านล่างเป็นผลลัพธ์จากการใช้คำสั่ง git status เพื่อให้เห็นว่าเอกสารดังกล่าวมีการแก้ไข

จากนั้นทดลองใช้คำสั่ง git add เพื่อจะทดสอบใช้คำสั่ง git reset โดยการย้อนกลับมายังสถานะดังภาพตัวอย่างด้านบน

$ git add .

รูปภาพด้านล่างเป็นผลลัพธ์จากการใช้คำสั่ง git add แล้วตรวจสอบสถานะด้วยคำสั่ง git status

เมื่อต้องการยกเลิกคำสั่ง git add ที่กระทำไปก่อนหน้านี้ สามารถทำได้โดยใช้คำสั่ง

$ git resert HEAD <file>

ผลลัพธ์จากการใช้คำสั่ง git reset แล้วตรวจสอบสถานะด้วยคำสั่ง git status จะพบว่าสถานะจะย้อนกลับไปก่อนการใช้คำสั่ง git add ดังรูปภาพตัวอย่างด้านบนสุด

อีกหนึ่งคำสั่งที่เกี่ยวกับการยกเลิกคือคำสั่ง Git Rebase แต่คำสั่ง Git Rebase นั้น มีจุดประสงค์ไม่เหมือนกับคำสั่ง Reset ที่กล่าวมาข้างต้น เนื่องจาก Git Rebase นั้นเป็นคำสั่งในการย้าย branch ที่สร้างไว้กับ base ก่อนหน้า ไปยัง base ใหม่ อธิบายได้ดังรูปภาพด้านล่าง

เพื่อให้เห็นวิธีการใช้คำสั่ง git rebase ได้ชัดเจน จึงได้ทดลองสร้างไฟล์ CHANGEME.txt โดยกำหนดค่าเริ่มต้น ดังภาพตัวอย่างด้านล่าง

ทดลองสร้าง branch จาก master ในส่วนนี้ ด้วยคำสั่ง

$ git checkout -b new-branch master

หลังจากใช้คำสั่งดังกล่าว เมื่อลองตรวจสอบ branch ด้วยคำสั่ง git branch จะพบว่าขณะนี้สถานะ active อยู่ที่ branch ที่เพิ่งสร้างขึ้นมาใหม่นี้

จากนั้นทดลองแก้ไขข้อมูลภายในเอกสาร บน branch ที่สร้างขึ้นมาใหม่นี้ จากตัวอย่างจะเพิ่มข้อความลงไปในเอกสารดังกล่าว

จากนั้นให้ใช้คำสั่ง commit ด้วยวิธีการตามปกติ

ทดลอง switch กลับมายัง master แล้วลองดูไฟล์ CHANGEME.txt ซึ่งจะพบว่าข้อมูลภายในไฟล์ CHANGEME.txt บน master อยู่ใน state เดิม ก่อนการแยก branch

โดยหากเรามีการแก้ไขข้อมูลใน CHANGEME.txt บน master โดยให้ commit โค้ดตามปกติ

กรณีนี้หากกลับไปตรวจสอบข้อมูลของ CHANGEME.txt บน new-branch จะพบว่าข้อความที่เพิ่มเข้าไปบน master จะไม่ปรากฎใน new-branch

คำสั่ง rebase นั้น จะช่วยให้เราสามารถนำส่วนที่พัฒนาเพิ่มเติมบน new-branch ไปประกอบเข้ากับ master โดยหลักการดังภาพที่อธิบายไว้ด้านบน ด้วยคำสั่ง

$ git rebase -i master

ซึ่งจะเปิด editor ขึ้นมา โดยให้เรากำหนดรายละเอียด หากตรวจสอบ และพบว่าไม่มีการเปลี่ยนแปลง หรือแก้ไขรูปแบบการทำ rebase แต่อย่างไร สามารถปิดตัว editor ไปได้เลย

จากนั้นผลลัพธ์ของคำสั่ง git rebase ก็จะปรากฏให้เห็น โดยทดลองตรวจสอบข้อมูลในไฟล์ CHANGEME.txt ดังรูปด้านล่าง

หลังจากนั้น หากต้องการยืนยันการ rebase ให้ใช้คำสั่ง

$ git rebase --continue

ซึ่งจะได้ผลลัพธ์ตามรูปด้านล่าง

หรือถ้าต้องการยกเลิกคำสั่ง rebase สามารถทำได้โดยใช้คำสั่ง

$ git rebase --abort

แทน ซึ่งคำสั่ง rebase จะถูกยกเลิกทันที

Comments are closed.