Branching Strategy - konlawatit/SWDEV-BBP-PLUS GitHub Wiki
เป็นรูปแบบการแยก Branch ต่างๆที่ทีมตกลงกันเพื่อให้เกิดความเข้าใจตรงกันว่า Branch ไหนใช้ทำอะไรเพื่อให้สอดคล้องกับการทำงาน
Permanent Branch
โดยใน Project ของทีมเราจะใช้เป็น 3 Branch หลักๆด้วยกันคือ
main
เป็น Production Branch หรือ Branch หลักที่ใช้ในเก็บ Code ที่เสถียรและสมบูรณ์ไว้ที่นี่โดยหลังจากที่พัฒนา Code และผ่านการทดสอบมาแล้วใน Branch develop อาจกำหนดเป็นเวอร์ชั่นเช่น 1.0.0 หรือ 2.1.0develop
เป็น Branch หลักที่ใช้ในการทำงานของทีมเมื่อผ่านการทดสอบเรียบร้อยจึงจะทำการเปิด Pull request เพื่อที่จะ merge เข้าสู่ mainfeatures/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
- ทำใน