บริษัท ของเรากำลังใช้โมเดลการแยกสาขา / ปล่อย / แก้ไขอย่างง่ายและต้องการคำแนะนำเกี่ยวกับรูปแบบการแยกสาขาที่ทำงานได้ดีที่สุดสำหรับ บริษัท หรือกระบวนการพัฒนาของคุณ
เวิร์กโฟลว์ / โมเดลการแยกสาขา
ด้านล่างนี้เป็นคำอธิบายหลักสามประการของเรื่องนี้ที่ฉันเคยเห็น แต่พวกเขาขัดแย้งกันบางส่วนหรือไม่ไปไกลพอที่จะแยกแยะปัญหาที่ตามมาที่เราพบเจอ (ดังอธิบายด้านล่าง) ดังนั้นทีมของเราเริ่มต้นจนถึงการแก้ปัญหาที่ไม่ดีนัก คุณทำสิ่งที่ดีกว่า
การรวม vs การรีบูต (ประวัติเรียงตามกันพันกัน)
ควร
pull --rebase
หรือรอด้วยการรวมกลับไปที่การฉีดยาจนกว่างานของคุณจะเสร็จสิ้น? โดยส่วนตัวแล้วฉันโน้มตัวไปสู่การรวมตัวกันเพราะนี่เป็นการรักษาภาพประกอบที่แสดงให้เห็นว่างานเริ่มต้นและสิ้นสุดที่ใดและฉันก็ชอบmerge --no-ff
จุดประสงค์นี้ด้วย มันมีข้อเสียอื่น ๆ อย่างไรก็ตาม หลายคนยังไม่ได้ตระหนักถึงคุณสมบัติที่มีประโยชน์ของการรวม - นั่นไม่ใช่การสับเปลี่ยน (การรวมสาขาหัวข้อเข้ากับต้นแบบไม่ได้หมายถึงการผสานต้นแบบเข้ากับหัวข้อหัวข้อ)ฉันกำลังมองหากระบวนการทำงานที่เป็นธรรมชาติ
ข้อผิดพลาดบางครั้งเกิดขึ้นเนื่องจากขั้นตอนของเราไม่ได้จับสถานการณ์เฉพาะด้วยกฎง่าย ๆ ตัวอย่างเช่นการแก้ไขที่จำเป็นสำหรับการออกรุ่นก่อนหน้านี้แน่นอนว่าควรอิงจากดาวน์สตรีมอย่างเพียงพอเพื่อให้สามารถรวมอัปสตรีมในสาขาทั้งหมดที่จำเป็น (การใช้คำเหล่านี้ชัดเจนเพียงพอหรือไม่) อย่างไรก็ตามมันเกิดขึ้นที่การแก้ไขทำให้มันกลายเป็นต้นแบบก่อนที่นักพัฒนาจะรู้ตัวว่ามันควรจะถูกวางลงต่อไปและถ้ามันถูกผลักไปแล้ว (ยิ่งแย่กว่าการผสานหรืออะไรบางอย่างจากมัน) อันตรายที่เกี่ยวข้อง กฎง่ายๆเช่นนี้คุณใช้อะไร?นอกจากนี้ในเรื่องนี้ยังรวมถึงความน่าอึดอัดใจของสาขาหัวข้อหนึ่งจำเป็นต้องยกเว้นสาขาหัวข้ออื่น ๆ (สมมติว่าพวกเขาจะแยกจากพื้นฐานทั่วไป) นักพัฒนาไม่ต้องการให้คุณลักษณะเสร็จสิ้นเพื่อเริ่มต้นอีกหนึ่งความรู้สึกเหมือนรหัสที่พวกเขาเพิ่งเขียนไม่ได้อยู่ที่นั่นอีกต่อไป
วิธีหลีกเลี่ยงการสร้างความขัดแย้งผสาน (เนื่องจากการเลือกโดยเชอร์รี่)
สิ่งที่ดูเหมือนว่าวิธีการสร้างความขัดแย้งผสานคือการเลือกเชอร์รี่ระหว่างสาขาพวกเขาไม่สามารถรวมกันอีกครั้ง? การใช้ความมุ่งมั่นแบบเดียวกันในการย้อนกลับ (จะทำเช่นนี้ได้อย่างไร) ในสาขาใดสาขาหนึ่งอาจแก้ปัญหานี้ได้? นี่คือเหตุผลหนึ่งที่ฉันไม่กล้าที่จะผลักดันกระบวนการทำงานที่ผสานกันเป็นส่วนใหญ่
จะย่อยสลายเป็นกิ่งเฉพาะได้อย่างไร
เราตระหนักดีว่าการรวบรวมการรวมเข้าด้วยกันจากหัวข้อต่างๆเป็นเรื่องที่ยอดเยี่ยม แต่บ่อยครั้งที่การทำงานของนักพัฒนาของเราไม่ได้ถูกกำหนดไว้อย่างชัดเจน (บางครั้งก็ง่ายเหมือนกับ มันไม่สามารถนำออกมาจากที่นั่นอีกครั้งตามคำถามข้างต้น? คุณทำงานกับการกำหนด / การอนุมัติ / การสำเร็จการศึกษา / การเปิดสาขาหัวข้อของคุณได้อย่างไร
ขั้นตอนที่เหมาะสมเช่นการตรวจสอบรหัสและการจบการศึกษาจะเป็นที่น่ารัก
แต่เราไม่สามารถเก็บสิ่งที่ไม่พันกันได้มากพอที่จะจัดการสิ่งนี้ - คำแนะนำใด ๆ สาขาบูรณาการภาพประกอบ?
ด้านล่างเป็นรายการคำถามที่เกี่ยวข้อง:
- กลยุทธ์ที่ดีในการอนุญาตให้แอปพลิเคชันที่ปรับใช้นั้นสามารถแก้ไขได้มีอะไรบ้าง
- คำอธิบายเวิร์กโฟลว์สำหรับการใช้ Git เพื่อการพัฒนาภายใน บริษัท
- Git เวิร์กโฟลว์สำหรับการพัฒนาเคอร์เนลขององค์กร
- คุณรักษารหัสการพัฒนาและรหัสการผลิตได้อย่างไร (ขอบคุณสำหรับPDF นี้ !)
- git ออกการจัดการ
- Git Cherry-pick และ Merge Workflow
- วิธีการเลือกหลายเชอร์รี่
- คุณจะรวมไฟล์ที่เลือกด้วย git-merge ได้อย่างไร
- วิธีการเชอร์รี่เลือกช่วงของการกระทำและรวมเข้าไปในสาขาอื่น
- ReinH Git Workflow
- git เวิร์กโฟลว์สำหรับการแก้ไขคุณจะไม่ย้อนกลับไปที่จุดเริ่มต้น
- เชอร์รี่เลือกผสาน
- เวิร์กโฟลว์ Git ที่เหมาะสมสำหรับระบบปฏิบัติการรวมและรหัสส่วนตัว?
- การดูแลรักษาโครงการด้วย Git
- เหตุใดจึงไม่สามารถรวมไฟล์ Git กับผู้ปกครอง / ต้นแบบที่แก้ไข
- Git branching / rebasing แนวปฏิบัติที่ดี
- เมื่อใด "git pull --rebase" จะพาฉันไปพบปัญหา?
- DVCS มีการใช้งานอย่างไรในทีมขนาดใหญ่
นอกจากนี้ยังตรวจสอบสิ่งที่พลาสติก SCM เขียนในการพัฒนางานขับเคลื่อนและถ้าพลาสติกไม่ได้เป็นทางเลือกของคุณศึกษาnvie รูปแบบของการแยกทางของเขาและสคริปต์สนับสนุน