วันนี้เจอประสบการณ์ไม่ค่อยดีสำหรับการใช้งาน git ด้วยคำสั่ง
[code]
$git push --force
[/code]
ผลที่ตามมาก็ไฟไหม้สิครับ
ทั้ง code หาย
ทั้ง commit history ต่าง ๆ หายไปหมด
งานของเราอาจจะดี แต่ของคนอื่นหายหมด
ภาพรวมคือ งานเข้าสิครับ !!
เป็นภัยต่อชีวิต เป็นพิษต่อทีมมาก ๆ
คำถามที่น่าสนใจคือ ทำไมเราต้องใช้ git push force ด้วยล่ะ ?
ตอบง่าย ๆ คือ มัน(มัก)ง่ายไงล่ะ ซึ่งมันเกิดจากเราทำอะไรผิดพลาดก็ไม่รู้ และส่งผลให้เราไม่สามารถ push code ขึ้นไปยัง repository ได้ ซึ่งเราสามารถใช้งานผ่านคำสั่งต่าง ๆ ของ git เพื่อแก้ไขได้เช่น- git commit --amend
- git rebase
- git reset
ดังนั้นก่อนอื่นต้องทำความเข้าใจว่าผลที่ตามมาจากการกระทำมีอะไรบ้าง ?
มันจะเขียนทับการเปลี่ยนแปลงทั้งหมดเลยนะ ดังนั้นคุยกับทีมก่อนว่า ไม่มีใครที่จะเปลี่ยนแปลงอีกแล้วนะ ทำการ update สิ่งต่าง ๆ ให้เรียบร้อย แก้ไขสิ่งต่าง ๆ ให้เรียบร้อย จากนั้นจึงทำการ git push force จึงจะปลอดภัยมากขึ้นแต่ถ้าต้องการใช้จริง ๆ แนะนำให้ใช้ git push - -force-with-lease ดีกว่านะครับ ซึ่งมันจะปลอดภัยต่อชีวิตอย่างมาก