# Git Reset, Git Checkout และ Git Revert คืออะไร? อธิบายพร้อมยกตัวอย่าง
การทำงานกับระบบ Git ถือเป็นหัวใจหลักของการทำงานร่วมกันในโปรเจกต์การเขียนโปรแกรมทั้งหลาย ไม่ว่าจะเป็นโปรเจกต์เล็กๆ หรือใหญ่โต การเข้าใจในเครื่องมือพื้นฐานเช่น git reset, git checkout และ git revert จึงมีความสำคัญอย่างยิ่งต่อนักพัฒนาซอฟต์แวร์ ในบทความนี้เราจะมาทำความเข้าใจว่าทั้งสามคำสั่งนี้ทำงานอย่างไร และสามารถนำไปใช้งานได้อย่างไรในทางปฏิบัติ
`git reset` เป็นคำสั่งที่ใช้ในการย้อนสถานะของไฟล์กลับไปยังจุดหนึ่งที่กำหนดใน Git repository ซึ่งสามารถกำหนดได้สามระดับคือ --soft, --mixed และ --hard
ตัวอย่างคำสั่ง git reset
#### Soft Reset
git reset --soft HEAD^
คำสั่งนี้จะย้อนการ commit ล่าสุด แต่ยังคงไฟล์และการเปลี่ยนแปลงไว้ใน staged area รอให้เราทำการ commit ใหม่
#### Mixed Reset (ค่าเริ่มต้น)
git reset --mixed HEAD^
หรือแค่
git reset HEAD^
คำสั่งนี้จะยกเลิกการ commit และ staged, แต่เนื้อหาไฟล์จะยังคงอยู่ไม่เปลี่ยนแปลง รอให้เราทำการ add และ commit อีกครั้ง
#### Hard Reset
git reset --hard HEAD^
คำสั่งนี้จะทำการย้อนการเปลี่ยนแปลงทั้งหมดไปยัง commit ก่อนหน้า ไฟล์ที่เคยทำการเปลี่ยนแปลงจะถูกลบออกโดยสิ้นเชิง
`git checkout` ใช้สำหรับเปลี่ยน branches หรือย้อนกลับไฟล์ที่เปลี่ยนแปลงไปยังสถานะเดิมของมัน
ตัวอย่างคำสั่ง git checkout
git checkout
คำสั่งนี้จะเปลี่ยนไปยัง branch ที่ระบุ
git checkout --
คำสั่งนี้จะย้อนกลับไฟล์ที่ไม่ได้ add หรือ commit ไปยังสถานะล่าสุดที่มีใน repository
`git revert` ใช้เพื่อย้อนการเปลี่ยนแปลงของ commit โดยการสร้าง commit ใหม่ที่มีการเปลี่ยนแปลงตรงกันข้ามกับ commit ที่ต้องการย้อนกลับ
ตัวอย่างคำสั่ง git revert
git revert
คำสั่งนี้จะทำการสร้าง commit ใหม่ที่มีการเปลี่ยนแปลงย้อนกลับจาก commit id ที่ระบุ โดยไม่ส่งผลเสียหายถึงสถานะปัจจุบันของ repository
Git reset, git checkout และ git revert เป็นเครื่องมือที่มีความสำคัญในการจัดการกับการเปลี่ยนแปลงใน codebase ของเรา การใช้งานทั้งสามคำสั่งอย่างชำนาญสามารถช่วยให้รักษาความเรียบร้อยของโค้ด และป้องกันการสูญเสียการเปลี่ยนแปลงที่สำคัญได้ ซึ่งความรู้เหล่านี้ก็เป็นแค่ส่วนหนึ่งของภูมิความรู้ทางด้านโปรแกรมมิ่งที่คุณสามารถเรียนรู้ได้เพิ่มเติม เพื่อเป็นทักษะพื้นฐานที่แข็งแกร่งสำหรับการเป็นนักพัฒนาซอฟต์แวร์นั่นเอง
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
Tag ที่น่าสนใจ: git_reset git_checkout git_revert version_control git_commands source_code_management codebase_management software_development_tools commit_manipulation branch_switching undo_changes code_versioning software_development_practices
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com