ดูเหมือนคุณจะมีปัญหาเล็กน้อยที่นี่:
1. การระบุคุณสมบัติสำหรับรุ่นเฉพาะ
นี่คือปัญหาการจัดการโครงการและปัญหาการประสานงาน จะนี้คุณลักษณะได้รับการปล่อยตัวก่อนที่ในเวลาเดียวกันขณะหรือหลังจากนี้อื่น ๆคุณลักษณะ? หากการเผยแพร่ต้องการเกิดขึ้นครั้งละหนึ่งคุณลักษณะให้ระบุว่า หากคุณสมบัติจะถูกจัดกลุ่มเป็นรีลีสให้พิจารณาว่ากลุ่มคืออะไรและบังคับใช้กับ devs และผู้มีอำนาจตัดสินใจ ใช้การติดตามปัญหาหรือระบบการออกตั๋วเพื่อแท็กการเปิดตัว ทำให้ชัดเจนว่าหากฟีเจอร์หนึ่งของรีลีสที่เฉพาะเจาะจงไม่มีการใช้งานสิ่งเหล่านั้นก็คือ
2. กลยุทธ์การแตกแขนง
Git-flowเป็นคำตอบที่ง่ายสำหรับปัญหาเช่นนี้และบ่อยครั้งที่ผู้คนใช้ตัวแปรGit-flowแม้ว่าพวกเขาจะไม่รู้ว่ามันคืออะไร ฉันจะไม่บอกว่ามันเป็นปัญหาทั้งหมด แต่มันช่วยได้มาก
ดูเหมือนว่าคุณกำลังประสบปัญหากับกลยุทธ์การวางจำหน่ายที่ไม่ได้กำหนดไว้ซึ่งคุณลักษณะที่ได้รับการรับรองจาก scattershot และบางสิ่งที่เริ่มพัฒนาเมื่อนานมาแล้วอาจได้รับการปล่อยตัวหลังจากสิ่งที่เริ่มขึ้นเมื่อเร็ว ๆ นี้
สาขาฟีเจอร์ที่ยาวนานหรือสาขารีลีสพร้อมกันอาจเป็นคำตอบที่ดีที่สุดสำหรับปัญหาประเภทนี้ ผสาน (หรือรีบูตถ้าคุณพอใจกับมัน) ข้อมูลล่าสุดจากผู้เชี่ยวชาญไปยังสาขาที่ยาวเหยียดของคุณ โปรดใช้ความระมัดระวังในการเพียงผสานในคุณสมบัติที่มีอยู่แล้วมีชีวิตอยู่มิฉะนั้นคุณจะใช้เป็นปัญหาที่คุณได้รับในตอนนี้ (มากเกินไปขึ้นผสมมีสาขาเดียว)
สาขา "Hotfix" หรือ "bugfix" เป็นส่วนสำคัญของกระบวนการนี้ ใช้พวกเขาสำหรับการแก้ไขครั้งเดียวที่มีขนาดเล็กที่มีรอบ QA สั้น ๆ
จากคำอธิบายของคุณอาจเป็นการดีกว่าหากไม่รักษาสาขา 'การพัฒนา' อย่างเป็นทางการ ค่อนข้างจะทำการแยกฟีเจอร์ทั้งหมดออกจากมาสเตอร์และสร้างรีลีสการรวมสาขาเมื่อมีการระบุรีลีส
3. สภาพแวดล้อม
อย่าจับคู่คอมไพล์กับสภาพแวดล้อมของคุณยกเว้นการผลิต == ต้นแบบ สาขา 'การพัฒนา' ควรถูกทำลาย สาขาที่วางจำหน่ายจะถูกผลักไปยังสภาพแวดล้อมการทดสอบไม่ว่าจะเป็นสภาพแวดล้อมที่ QA หรือ envirement หากคุณต้องการให้ผลักดันฟีเจอร์เฉพาะไปสู่สภาพแวดล้อม
หากคุณมีสาขาฟีเจอร์มากกว่าหนึ่งสาขาที่ต้องได้รับการแยกต่างหาก แต่กำลังได้รับการทดสอบในเวลาเดียวกัน ..... ¯ \ _ (ツ) _ / ¯ .... หมุนเซิร์ฟเวอร์อื่นหรือไม่ อาจรวมพวกเขาเข้าด้วยกันเป็นสาขาทิ้ง ... กระทำการแก้ไข / เปลี่ยนแปลงสาขาเดิมและรวมเข้ากับสาขาทิ้งไป; ทำการอนุมัติขั้นสุดท้ายและ UAT ในแต่ละสาขาที่วางจำหน่าย
4. การลบคุณสมบัติที่ไม่ได้รับการอนุมัติจากสาขา
นี่คือสิ่งที่ความคิดข้างต้นพยายามหลีกเลี่ยงเพราะไม่ต้องสงสัยเลยว่าสิ่งที่เจ็บปวดที่สุดที่จะลองทำ หากคุณโชคดีคุณสมบัติได้รับการรวมเข้ากับการพัฒนาหรือสาขาการทดสอบของคุณโดยใช้การรวมการกระทำ หากคุณโชคร้าย devs ได้ทุ่มเทให้กับสาขาพัฒนา / ทดสอบโดยตรง
ไม่ว่าจะด้วยวิธีใดหากคุณเตรียมการสำหรับการเปิดตัวและมีการเปลี่ยนแปลงที่ไม่ได้รับการอนุมัติคุณจะต้องใช้ Git เพื่อสำรองการกระทำที่ไม่ได้รับการอนุมัติจากสาขาที่วางจำหน่าย ความคิดที่ดีที่สุดคือการทำก่อนการทดสอบการเปิดตัว
ขอให้โชคดี