Branching Strategy - konlawatit/SWDEV-BBP-PLUS GitHub Wiki

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

Permanent Branch

โดยใน Project ของทีมเราจะใช้เป็น 3 Branch หลักๆด้วยกันคือ

  1. main เป็น Production Branch หรือ Branch หลักที่ใช้ในเก็บ Code ที่เสถียรและสมบูรณ์ไว้ที่นี่โดยหลังจากที่พัฒนา Code และผ่านการทดสอบมาแล้วใน Branch develop อาจกำหนดเป็นเวอร์ชั่นเช่น 1.0.0 หรือ 2.1.0
  2. develop เป็น Branch หลักที่ใช้ในการทำงานของทีมเมื่อผ่านการทดสอบเรียบร้อยจึงจะทำการเปิด Pull request เพื่อที่จะ merge เข้าสู่ main
  3. features/name-of-feature เป็น Branch ที่เป็น Directory หลักรวม feature ต่างๆซึ่งจะแยกย่อยออกไปเป็น Branch ย่อยๆตามแต่ละ feature โดยจะทำงานที่ Branch ย่อยเหล่านั้นโดยจะอยู่ในกรอบของ feature นั้นๆ และต้องทำการทดสอบก่อนที่จะทำการเปิด Pull request เพื่อที่จะ merge เข้าสู่ develop ต่อไป

หลักการตั้งชื่อ Branch

  • ตั้งชื่อโดยขึ้นด้วย features/
  • ตามด้วยชื่อของ feature นั้นเป็นภาษาอังกฤษเชื่อมคำด้วย -
  • เช่น features/add-installment,features/view-interest-rate

หลักการทำงาน

  • ทำงานตามกรอบของ Branch ย่อยแต่ละ feature อาจมีการสร้าง temporary branch แยกเพิ่มและลบทิ้งเมื่อ merge แล้ว
  • สอดคล้องกับ Commit message เช่น [UI]... ใน features/login ทีมก็จะเข้าใจตรงกันว่าทำ ... เกี่ยวกับ UI ในส่วนของ login feature
  • ขั้นตอนการทำงาน
    • ทำใน features/name-of-feature เสร็จ 1 featureเปิด Pull Request เพื่อ merge เข้าสู่ develop
    • เมื่อทดสอบใน develop มีความเสถียรสมบูรณ์แล้ว เปิด Pull Request เพื่อ merge เข้าสู่ main
    • ตัว Code ที่สมบูรณ์ก็จะอยู่ใน main branch
    • แต่ละ Pull Request จะต้องให้คนในทีมอย่างน้อย 3 คน Review เมื่อตกลงร่วมกันแล้วถึง merge