Monthly Archives: May 2014

แก้ไข git commit ล่าสุด

หลายๆครั้งหลังจากเรา commit code แล้ว เรามาพบทีหลังว่าเรา commit ไม่ครบทุกไฟล์หรือมีบางอย่างที่อยากแก้ไขใน commit ที่เริ่มเพิ่งจะทำการ commit ไป เช่น ลืมลบ print statement ที่ใช้ debug ตัวโปรแกรมออกหลังจาก debug เสร็จแล้ว สำหรับความผิดพลาดเหล่านี้เราสามารถใช้คำสั่ง

git commit --amend

เพื่อทำการแก้ไข commit สุดท้ายของเราได้

เพียงแค่เราทำการแก้ไขไฟล์ และสั่ง git add เหมือนที่เราจะทำการ commit ใหม่ตามปกติ จากนั้นสั่ง git commit –amend ตัว git จะทำการรวมการเปลี่ยนแปลงล่าสุดของเรานั้นเข้ากับ commit สุดท้ายให้เรียบร้อย

ข้อควรระวังคือการแก้ไข commit ในลักษณะนี้ ทำให้เกิด commit ใหม่แทนที่ commit เก่า สังเกตได้จาก revision ที่เปลี่ยนไปหลังคำสั่ง commit –amend เราจึงไม่ควรทำการแก้ไข commit ด้วยคำสั่งนี้และวิธีอื่นใดๆ ที่ทำให้ revision เปลี่ยน ปัญหาจะเกิดขึ้นหากเพื่อนร่วมทีมมี commit เดียวกันนี้อยู่ในเครื่องของเขา เพราะจะทำให้ git มองว่าเป็น commit ที่ต่างกันและเกิดความสับสนวุ่นวายเมื่อมีการนำ code มารวมกันในภายหลัง

แนวทางการป้องกันปัญหานี้ง่ายๆ ก็คือ แก้ไข commit เฉพาะ commit ที่เรายังไม่เคย push ไปที่ repository ที่คนอื่นใช้งานร่วมอยู่ด้วย หามีการ push ไปที่ public repository แล้ว ก็ยอมสร้าง commit ใหม่ เพียงแค่นี้เราและเพื่อนร่วมทีมก็จะปลอดภัยแล้วครับ

Advertisements