เห็นด้วยอย่างยิ่งกับ @Mot
ยินดีที่ได้รับฟังคำถามเดียวกันนี้
ทีมงานของเราก็ยังตามล่าหาข้อมูลเพิ่มเติมรูปแบบแตกแขนงสากลกว่าที่ประสบความสำเร็จอย่างใดอย่างหนึ่ง เช่นตามที่ @Mot กล่าวไว้ข้างต้น - แนวคิดหลักคือการหลีกเลี่ยงการแนะนำที่เก็บเพิ่มเติมสำหรับการสนับสนุน release- * branch ใน repo * .git แยกต่างหากเนื่องจากเป็นตัวอย่างที่ทำโดย kernel.org สำหรับรีลีสที่เสถียร แต่ kernel.org ทำเพื่อลดขนาดที่ดาวน์โหลดให้น้อยที่สุดฉันเดา
สำหรับฉันมันดูเหมือนว่ามันสะอาดมากขึ้นที่จะมีต้นแบบเป็นฉีดสำหรับการพัฒนา
นอกจากนี้ยังมีข้อขัดแย้งบางอย่างในโมเดลการรวมรุ่น - *เพื่อควบคุมและติดแท็กในภายหลังด้วยแนวคิด
ใช้สคริปต์ Git hook เพื่อสร้างและเปิดตัวซอฟต์แวร์ของเราไปยังเซิร์ฟเวอร์ที่ใช้งานจริงโดยอัตโนมัติทุกครั้งที่มีข้อผูกมัดกับมาสเตอร์
สาเหตุการตกแต่ง (การรวมและการแท็ก)ไม่ใช่ธุรกรรมปรมาณู:
$ git checkout master
Switched to branch 'master'
$ git merge --no-ff release-1.2
Merge made by recursive.
(Summary of changes)
$ git tag -a 1.2
และถ้า git hook เริ่มสร้างด้วยการสนับสนุนการกำหนดเวอร์ชันอัตโนมัติ:
$git describe --tags --long >.ver
จากนั้นอาจสร้างเวอร์ชันที่ผิดพลาดสำหรับ:
$ git merge --no-ff release-1.2
ฉันรู้ว่าการกำหนดเวอร์ชันในSuccessfullหนึ่งแนะนำกระบวนการ Bump-Version
แต่ไม่ใช่แบบอัตโนมัติ
ดังนั้นเพื่อสรุป - ความแตกต่างที่สำคัญที่เราแนะนำกับโมเดลสาขาสำหรับการเผยแพร่ - * การรวมและการติดแท็กคือ - การติดแท็กรีลีสในการสร้างสาขา - เก็บสาขาของรีลีสไว้เพื่อเปิดใช้งานการบำรุงรักษาในอนาคต