ฉันมีการสนทนาเมื่อเร็ว ๆ นี้กับผู้คนที่ต่อต้านกลยุทธ์การปฏิเสธของฟีเจอร์บั๊กใน GIT ดูเหมือนว่าจะเป็นรูปแบบที่ได้รับการยอมรับให้ใช้ rebase เฉพาะสำหรับสาขาในพื้นที่ของเอกชน แต่ไม่เคยใช้เมื่อมีหลายคนทำงานในฟีเจอร์และสาขาเดียวกันตามที่เรียกว่า "Golden Rule of Rebasing" (เช่นอธิบายที่นี่: https : //www.atlassian.com/git/tutorials/merging-vs-rebasing/conceptual-overview )
ฉันแค่แปลกใจที่มีมติในเรื่องนี้ ฉันทำงานเป็นเวลา 3 ปีด้วยกลยุทธ์การรีบูทเต็มรูปแบบโดยมีนักพัฒนาซอฟต์แวร์ประมาณ 20 คนที่ทำงานเพื่อหาและคาดเดาว่ามันทำงานได้อย่างไร
กระบวนการนั้นเป็นพื้น:
- คุณสร้างสาขาฟีเจอร์ของคุณเรียกมันว่า "myfeature" และผลักมันไปที่ต้นกำเนิด / myfeature
- คนอื่นอาจตรวจสอบและทำงานกับมัน
- บางครั้งคุณอาจทำการรีบูตจากต้นแบบ: จาก "myfeature", ต้นกำเนิด git rebase / master ; จากนั้นใช่คุณต้องผลักดันมัน
- เกิดอะไรขึ้นเมื่อคนอื่น ๆ ต้องการที่จะผลักดันการกระทำของพวกเขา? พวกเขาเพียงแค่ rebase มัน: คอมไพล์ rebase ต้นกำเนิด / คุณสมบัติของฉัน ดังนั้นตอนนี้พวกเขาอยู่ข้างหน้าอย่างรวดเร็วและสามารถผลักดันมันโดยไม่บังคับ
หลักการเดียวที่จะเคารพคือสาขาคุณลักษณะเป็นเจ้าของโดยใครบางคน เจ้าของเป็นคนเดียวที่สามารถผลักดัน
ดังนั้นฉันยอมรับ: ทันทีที่มีแรงผลักดันมีความเสี่ยงที่จะทำผิดพลาด นั่นเป็นเรื่องจริง แต่ก็มีหลายวิธีในการกู้คืนจากข้อผิดพลาดและจริงๆแล้วในการพัฒนา 3 ปีฉันไม่เห็นข้อผิดพลาดที่เกิดขึ้นมากมายและเมื่อมันเกิดขึ้นเราพบวิธีการกู้คืนอย่างถูกต้องเสมอ
เหตุใดจึงเป็น "กฎทองแห่งการคืนเงิน" ทำไมจึงได้รับการยอมรับอย่างกว้างขวาง มีอะไรอีกบ้างที่ฉันพลาดไป ฉันเข้าใจว่าต้องมีองค์กรขั้นต่ำ (ทุกกลยุทธ์ต้องการบางองค์กร) แต่ใช้งานได้