สิ่งสำคัญที่ความมุ่งหมายของ git-flow คือความสามารถในการให้เหตุผลเกี่ยวกับบทบาทของสาขาที่กำหนดและสิ่งที่แยกออกมาจาก
ตามหลักการแล้วทุกสาขาผสานกลับไปที่ codeline ที่รวมเข้าด้วยกัน โดยทั่วไปจะเป็นการรวมจากการฉีด (ในคอมไพล์ไหลนี่คือdev
) แยกสาขาสาขาและรวมจาก dev ปล่อยสาขาและผสานจาก dev (พร้อมกับการรวมเพิ่มเติมmaster
) สาขาฮอตฟิกซ์และผสานจากต้นแบบ (พร้อมผสานเพิ่มเติมกลับไปที่ dev)
codeline แต่ละสาขาจะแยกจากกันและรวมกลับไปที่พาเรนต์ codeline อาจดึงรหัสจาก codelines อื่น ๆ ได้ตลอดเวลาหากจำเป็น
หากสาขาจากฟีเจอร์สาขาเป็น "ฉันต้องการสำรวจวิธีนี้ในการแก้ไขปัญหาในฟีเจอร์ฟีเจอร์นั้น" - ปรับได้อย่างสมบูรณ์แบบ มันแยกจากสาขาคุณลักษณะรับรหัสและผสานกลับไปที่สาขาคุณลักษณะ (หรือถูกยกเลิก)
- สาขาจากคุณสมบัติ
- สำรวจความคิด
- ผสานคุณสมบัติ
สิ่งที่คุณต้องการหลีกเลี่ยงคือสิ่งที่มีลักษณะ:
- สาขาจากคุณสมบัติที่จำเป็น
- ทำงานกับรหัส
- ผสานจาก dev เมื่อคุณลักษณะที่ต้องการเสร็จสมบูรณ์
- ตรวจสอบการทำงาน (และการผูกพันเพิ่มเติม) ในสาขาฟีเจอร์
- รวมเข้ากับ dev
เหตุผลก็คือจุดเริ่มต้นและจุดสิ้นสุดไม่ตรงกัน - ทำให้ยากขึ้นนิดหน่อยที่จะเข้าใจว่ามันคืออะไรและเป็นอย่างไร ไม่ใช่เป็นไปไม่ได้ แต่มันใช้เวลาเพิ่มขึ้นเล็กน้อยเพื่อให้ใครบางคนเข้าใจบทบาทของมัน
อย่างไรก็ตามหากนี่เป็นคุณสมบัติใหม่ที่ขึ้นอยู่กับรหัสที่ยังไม่พบใน dev การไหลควรเป็น:
- สาขาจาก dev
- ผสานจากคุณสมบัติที่จำเป็น
- ทำงานกับรหัส
- ผสานจาก dev เมื่อคุณลักษณะที่ต้องการเสร็จสมบูรณ์
- ตรวจสอบการทำงาน (และการผูกพันเพิ่มเติม) ในสาขาฟีเจอร์
- รวมเข้ากับ dev
โปรดทราบว่าสิ่งนี้เริ่มต้นด้วยสาขาจาก dev และลงท้ายด้วย merge to dev
ทั้งหมดที่กล่าวว่าอาจเป็นสิ่งที่ดีที่สุดที่ควรทำคือหลีกเลี่ยงการผสานจากคุณลักษณะหนึ่งไปยังอีกคุณสมบัติหนึ่ง สาขาคุณลักษณะทำสิ่งที่จำเป็นต้องมีขั้นตอน ... และรอ
- สาขาจาก dev
- ทำงานกับรหัส
- ผสานจาก dev เมื่อคุณลักษณะที่ต้องการเสร็จสมบูรณ์
- ตรวจสอบการทำงาน (และการผูกพันเพิ่มเติม) ในสาขาฟีเจอร์
- รวมเข้ากับ dev
นี่เป็นชุดของสาขาและรหัสที่เสถียรที่สุด
สิ่งที่ต้องพิจารณาสำหรับการทำงานในอนาคตจะมีคุณสมบัติในการเผยแพร่อินเทอร์เฟซที่จำเป็นสำหรับการทำงานร่วมกันกับคุณสมบัติอื่น ๆ แม้ว่ารหัสการนำไปใช้จะไม่สมบูรณ์ก็ตาม สิ่งนี้จะถูกรวมเข้ากับ dev จากนั้นคุณลักษณะที่ต้องการอาจทำงานได้จากส่วนต่อประสานเหล่านั้นเช่นเดียวกับคุณลักษณะในอนาคต สิ่งนี้น่าจะช่วยให้ฟีเจอร์ในอนาคตมีความคืบหน้าต่อไป (เข้ารหัสกับส่วนต่อประสานทดสอบกับสตับส์ที่ใช้ส่วนต่อประสาน) กว่าที่มันจะเกิดขึ้นหากต้องรอให้ฟีเจอร์ที่จำเป็นต้องรวมเข้ากับ dev