[Git] เรื่องไม่คาดฝันเกิดขึ้นได้เสมอ จงใช้ git reset --hard ซะ

จากคราวก่อนที่เรา Deploy โค้ดด้วย Shell ไปแล้ว และเราก็สัญญากันแล้วว่าจะไม่ใช้ FTP กันอีก... แต่คุณครับ เรื่องไม่คาดฝันก็เกิดขึ้นได้ ฮ่า ๆ ๆ ๆ เมื่อบน Production มีปัญหา การจะแก้ปัญหาให้เร็วที่สุดเท่าที่จะทำได้ คงจะหนีไม่พ้นการ FTP อยู่ดี... แป่วววว ...

แก้เสร็จแล้ว แล้วยังไงต่อ?
ปัญหามันยังไม่จบครับ... มันจะมีปัญหาต่อไปก็คือ เวลาที่ Jenkins สั่งให้ git pull มันจะเกิด conflict ครับ... เชี่ยแล้วไงล่ะ... ชิบหายกว่าเดิม

บางคนอาจจะคิดว่า... อ้าว... ไม่เห็นยากเลยเราก็ ssh ขึ้นไปแล้วก็ push มันจากเซิฟเวอร์เลยสิ... แบบนี้ก็ทำได้ครับ ... นานาจิตตังเลยก็แล้วกัน

แต่สำหรับผมเองผมคิดว่าบนเซิฟเวอร์ไม่ควรแก้มือ ย้ำว่าไม่ควรทำอย่างยิ่ง ด้วยเหตุผลที่ว่าเดี๋ยวมันจะติดเป็นนิสัยที่เสียครับ ฉะนั้นทางแก้ก็คือ บนเซิฟเวอร์ให้เราสั่ง

git reset --hard

มันจะย้อนโค้ดที่เราแก้จาก FTP กลับมาใช้โค้ดจาก HEAD ครับ จากนั้นเราค่อย push โค้ดที่เราแก้จากเครื่องของเราเองดีกว่า แล้วปล่อยให้ Jenkins มัน git pull เองตามธรรมชาติของมัน

เอาเท่าที่คิดได้ตอนนี้นะครับ
ใครมีวิธีที่ดีกว่านี้ช่วยแนะนำมาหน่อยครับ
ขอบคุณครับ :)

Comments