Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 2029

Git :: ข้อควรระวังสำหรับการใช้งาน push force

$
0
0

git-push-force

git-push-force วันนี้เจอประสบการณ์ไม่ค่อยดีสำหรับการใช้งาน git ด้วยคำสั่ง [code] $git push --force [/code] ผลที่ตามมาก็ไฟไหม้สิครับ ทั้ง code หาย ทั้ง commit history ต่าง ๆ หายไปหมด งานของเราอาจจะดี แต่ของคนอื่นหายหมด ภาพรวมคือ งานเข้าสิครับ !!
เป็นภัยต่อชีวิต เป็นพิษต่อทีมมาก ๆ

คำถามที่น่าสนใจคือ ทำไมเราต้องใช้ git push force ด้วยล่ะ ?

ตอบง่าย ๆ คือ มัน(มัก)ง่ายไงล่ะ ซึ่งมันเกิดจากเราทำอะไรผิดพลาดก็ไม่รู้ และส่งผลให้เราไม่สามารถ push code ขึ้นไปยัง repository ได้ ซึ่งเราสามารถใช้งานผ่านคำสั่งต่าง ๆ ของ git เพื่อแก้ไขได้เช่น
  • git commit --amend
  • git rebase
  • git reset
แต่บางครั้งเมื่อใช้สิ่งต่าง ๆ เหล่านี้ ก็ไม่สามารถ push code ขึ้นไปได้ นั่นคือปัญหาเรื่องของ commit history นั่นเอง ดังนั้นเราจึง git push force มันไปเลย !! ง่าย ๆ สบาย ๆ แต่พังกระจาย ถ้าไม่มีการสื่อสารที่ดีพอ หรือบางครั้งขี้เกียจ merge code ที่มันขัดแย้งกันเยอะ ดังนั้นจึงให้ตัวเราเองเป็นที่ตั้ง จากนั้น git push force มันไปเลย !!

ดังนั้นก่อนอื่นต้องทำความเข้าใจว่าผลที่ตามมาจากการกระทำมีอะไรบ้าง ?

มันจะเขียนทับการเปลี่ยนแปลงทั้งหมดเลยนะ ดังนั้นคุยกับทีมก่อนว่า ไม่มีใครที่จะเปลี่ยนแปลงอีกแล้วนะ ทำการ update สิ่งต่าง ๆ ให้เรียบร้อย แก้ไขสิ่งต่าง ๆ ให้เรียบร้อย จากนั้นจึงทำการ git push force จึงจะปลอดภัยมากขึ้น
แต่ถ้าต้องการใช้จริง ๆ แนะนำให้ใช้ git push - -force-with-lease ดีกว่านะครับ ซึ่งมันจะปลอดภัยต่อชีวิตอย่างมาก

สุดท้ายแล้วแนะนำให้ใช้ git push force เป็นทางเลือกสุดท้ายเท่านั้น

เช่นการลบ commit history ที่มีข้อมูลที่เป็นความลับ หรือเป็นสิ่งที่ไม่ต้องการให้มีจริง ๆ ซึ่งมันบ่งบอกว่า repository ของคุณมันแย่มาก ๆ หรือกระบวนการทำงานต้องปรับปรุงได้แล้วนะ Reference Websites https://robots.thoughtbot.com/git-push-force-with-lease https://developer.atlassian.com/blog/2015/04/force-with-lease/

Viewing all articles
Browse latest Browse all 2029

Trending Articles