[Git EP.011]เรียนรู้ Git Flow ทำไมต้องใช้?

Natthakarn Pruksapong
Touch Technologies
Published in
2 min readJan 10, 2019

หลักการทำงานของ Git Flow

ภาพรวม Git Flow

ขั้นตอนการทำงานของ Git Flow

เมื่อเราทำการสร้างงาน หรือ Project ครั้งแรกเราจะต้องมี Branch ของ Master เป็นตัวแรก และ เป็น Branch หลัก

เรื่มต้น Project

หากต้องการแก้ไขงานหรือ Project เราจะทำการแตก Branch ออกมาที่ชื่อว่า Master เพื่อที่ว่าหากสิ่งที่เราได้ทำแก้ไขไปนั้นเกิดข้อผิดพลาดจะได้ไม่กระทบตัว Master หรือ ตัว Branch หลัก

ต้องการทำการแก้ไข Project

Feature Branches คือ ในกรณีที่มีการพัฒนา Feature ใหม่ๆของระบบ หรือ มีผู้พัฒนามากกว่า 1 คน เราจะแตกเจ้าตัว Feature Branches ออกมาเพื่อไม่ให้เวลาเราพัฒนาระบบแล้วไปกระทบกับตัว Develop

มีผู้พัฒามากกว่า 1 คน หรือมี Feature หลายๆ Feature

เมื่อเราทำการพัฒนาเสร็จแล้ว จะทำการรวมข้อมูลที่เราได้ทำการพัฒนาใน Feature Branches เข้ากับ Develop

รวมสิ่งที่พัฒนาเข้ากับ Develop

เมื่อต้องการที่จะปล่อย Product ออกไปให้ลูกค้าจะต้องทำการแตก Branch ของ Release เพื่อทดสอบระบบทั้งหมดก่อนที่จะปล่อยออกไป

ทำการทดสอบก่อนที่จะปล่อย Product

เมื่อทำการทดสอบที่ Branch ของ Release แล้วเกิดมีข้อผิดพลาดเกิดขึ้นจะนำไปแก้ไขที่ Branch ของ Develop อีกครั้ง และเมื่อทำการแก้ไขเรียบร้อยแล้ว จะนำกลับไปทดสอบอีกครั้ง เมื่อทำการทดสอบแล้วไม่มีข้อผิดพลาดเกิดขึ้นจะทำการส่งข้อมูลไปที่ Branch ของ Master และ Develop

ปล่อย Product

เมื่อตัว Master ที่เราปล่อยออกไปนั้นเกิดมีปัญหาหรือเกิดบัค จำเป็นที่จะต้องทำการแก้ไขเร่งด่วน โดยเราจะทำการแตก Branch เจ้า Hotfixes ออกมาเพื่อแก้ไขปัญหา เมื่อแก้ปัญหาเสร็จแล้วจะเอากลับเข้าไปรวมที่ Master และ Develop

Product มีปัญหา

สรุป

เมื่อเราทำการสร้าง Branch โดย Branch แรกจะเป็น Branch ที่ชื่อว่า Master ที่เป็นงาน หรือ Project เริ่มต้น(Branch หลัก) เมื่อเราต้องการที่จะแก้ไข จะต้องทำการแตก Branch ที่ออกมาจาก Master 1 อัน คือ Develop เพื่อไม่ให้ไปกระทบกับตัวงานหลัก โดยใน Develop นั้นก็จะมีการแก้ไข Update งานเพื่อให้เป็นงานล่าสุด หากมีผู้พัฒนามากกว่า 1 คน ก็จะแตก Branch เพิ่มออกมาจากตัว Develop เพื่อไม่ให้กระทบกับ Branch ของ Develop และเมื่อทำงานเสร็จก็จะรวมข้อมูลเข้ากับ Branch ของ Develop หากเราต้องการที่จะเผยแพร่ Product ออกไปต้องทำการทดสอบก่อน จะต้องสร้าง Branch ที่ชื่อ Release เพื่อทดสอบว่าเกิดปัญหาหรือไม่ หากเกิดปัญหาจะกลับไปที่ Branch ของ Develop เพื่อทำการแก้ไข เมื่อไม่มีข้อผิดพลาดแล้วจะเอากลับเข้าไปรวมที่ Master และ Develop เพื่อพัฒนาต่อไป

ทำไมต้อง Git Flow

  • ช่วยให้เราสามารถดึงโค้ดหรือข้อมูลเก่าๆได้ ในกรณีที่เราเกิดปัญหา เราสามารถสลับ Branch เพื่อที่จะแก้ไขแค่จุดนั้นๆได้
  • ช่วยให้เราทำงานเป็นระบบ และ มีระเบียบมากขึ้น
  • ทำให้สิ่งที่แก้ไขเพิ่มเติมไม่กระทบกับ Branch หลัก ในกรณีที่เกิดมีผู้พัฒนาคนใดคนหนึ่ง Commit งานมาแล้วทำให้มีปัญหาเกิดขึ้นหรืออะไรก็ตามแต่ ดังนั้นเมื่อเกิดข้อผิดพลาดก็จะไปแก้แค่ใน Branch ที่ผู้พัฒนาคนนั้นแตกออกไป
  • ทำให้เราแยก Features หรือ Function หลายๆ อย่างออกจากกันได้เมื่อพัฒนาเสร็จจึงค่อยเอามารวมกันในจุดเดียว

Touch Technologies

“ เราไม่ได้ถูกต้องที่สุด แต่เราแสดงสิ่งที่เราทำ ”

--

--