พิจารณาสถานการณ์ต่อไปนี้:
- คุณมีที่เก็บโคลนคอมไพล์
- คุณมีการกระทำในท้องถิ่น (การกระทำที่ยังไม่ได้ผลักไปที่ใดก็ได้)
- ที่เก็บรีโมตมีการยอมรับใหม่ที่คุณยังไม่ได้กระทบยอด
ดังนั้นสิ่งนี้:
หากคุณดำเนินการgit pull
ด้วยการตั้งค่าเริ่มต้นคุณจะได้รับสิ่งนี้:
นี่เป็นเพราะคอมไพล์ทำการผสาน
มีทางเลือกแม้ว่า คุณสามารถบอกให้ pull ทำ rebase แทน:
git pull --rebase
และคุณจะได้รับสิ่งนี้:
ในความเห็นของฉันเวอร์ชันที่ถูก rebased มีข้อดีมากมายที่ส่วนใหญ่มุ่งเน้นที่การรักษาทั้งรหัสและประวัติของคุณให้สะอาด ใช่ความยุ่งเหยิงของการกระทำในท้องถิ่นของคุณจะเปลี่ยนไป แต่ดูเหมือนว่าจะเป็นเพียงเล็กน้อยที่จะจ่ายสำหรับประวัติที่เรียบง่ายกว่าที่คุณได้รับ
ฉันไม่ได้แนะนำว่านี่เป็นค่าเริ่มต้นที่ไม่ดีหรือผิด ฉันแค่มีปัญหาในการคิดหาเหตุผลว่าทำไมการผสานอาจเป็นที่ต้องการสำหรับการเริ่มต้น เรามีความเข้าใจหรือไม่ว่าทำไมถึงถูกเลือก? มีประโยชน์ที่ทำให้เหมาะสมกว่าเป็นค่าเริ่มต้นหรือไม่
แรงจูงใจหลักสำหรับคำถามนี้คือ บริษัท ของฉันพยายามกำหนดมาตรฐานพื้นฐานบางอย่าง (หวังว่าจะเป็นแนวทางเพิ่มเติม) สำหรับวิธีที่เราจัดระเบียบและจัดการที่เก็บข้อมูลของเราเพื่อให้ง่ายขึ้นสำหรับนักพัฒนาในการเข้าถึงพื้นที่เก็บข้อมูลที่ไม่เคยทำงานด้วยมาก่อน ฉันสนใจที่จะทำกรณีที่เราควรรีบาวด์ในสถานการณ์ประเภทนี้ (และอาจแนะนำให้นักพัฒนาตั้งค่าคอนฟิเกอเรชันระดับโลกเป็นรีบูตโดยค่าเริ่มต้น) แต่ถ้าฉันไม่เห็นด้วยฉันจะถามว่าทำไมการรีบูตไม่ใช่ ' ค่าเริ่มต้นถ้ามันยอดเยี่ยมมาก ดังนั้นฉันสงสัยว่ามีอะไรที่ขาดหายไปหรือเปล่า
มันได้รับการแนะนำว่าคำถามนี้เป็นคำถามที่ซ้ำกันของเหตุใดเว็บไซต์จำนวนมากจึงนิยมใช้“ git rebase” มากกว่า“ git merge” ; อย่างไรก็ตามคำถามนี้ค่อนข้างตรงกันข้ามกับคำถามนี้ มันกล่าวถึงข้อดีของการ rebase มากกว่าการรวมในขณะที่คำถามนี้ถามเกี่ยวกับประโยชน์ของการรวมมากกว่า rebase คำตอบที่สะท้อนให้เห็นถึงเรื่องนี้โดยมุ่งเน้นไปที่ปัญหาเกี่ยวกับการรวมและผลประโยชน์ของการคืนเงิน