เมื่อเร็ว ๆ นี้เราได้เปลี่ยนจาก SVN เป็น Git และในเวลาเดียวกันก็ทำให้ระบบที่ใช้งานจริงของเราเข้าสู่การควบคุมเวอร์ชัน
ในโครงการที่ฉันได้รับมอบหมายเราทุกคนเข้าถึงที่เก็บเดียวกันและเพื่อรับการเปลี่ยนแปลงสดเราแค่git pull
อยู่ที่นั่น สิ่งนี้ทำให้เกิดปัญหาเนื่องจากนักออกแบบเว็บของเราผลักดันการเปลี่ยนแปลงใน VCS ที่ยังไม่ควรเผยแพร่ แต่ควรอยู่ในสภาพแวดล้อมการทดสอบเว็บ
เมื่อนักพัฒนาคนใดคนหนึ่งดึงเข้ามาใช้งานจริงเขาจะได้รับการเปลี่ยนแปลงทั้งหมด (อาจยังไม่เสร็จ)
ฉันคิดว่าการเปลี่ยนสดเป็นสาขาพิเศษและรวมสิ่งที่เปลี่ยนแปลง แต่เนื่องจากขาดความรู้คอมไพล์ของฉันฉันไม่มีความคิดอย่างไร
ความคิดของฉันคือ:
- สร้างสาขาใหม่ในการถ่ายทอดสด (
git branch live
) - ทุกครั้งที่บางสิ่งบางอย่างต้องมีชีวิตอยู่
- การเปลี่ยนแปลงในการดึงต้นแบบ (ชอบ
git checkout master; git pull; git checkout live
) git merge master
- การเปลี่ยนแปลงในการดึงต้นแบบ (ชอบ
ปัญหาคือการเปลี่ยนไปใช้งานต้นแบบหรือดึงทุกอย่างเข้าสู่ระบบสดจะทำให้เกิดปัญหาดังนั้นฉันจึงต้องการหลีกเลี่ยงปัญหานี้
มีวิธีใดบ้างในการทำสิ่งนี้หรือมีวิธีที่ดีกว่าในการจัดการระบบ Live (ยกเว้นการฝึกอบรมผู้ใช้งานเว็บเพื่อไม่ให้ผลักดันเนื้อหาที่ยังไม่เสร็จ)
git checkout -f
จะไม่สนใจปัญหา - แต่ให้สำรอง!
git pull --all
โดยค่าเริ่มต้นจะไม่ดึงต้นแบบเข้าสู่การถ่ายทอดสดมันจะดึงข้อมูลหลักและรวมเข้ากับข้อมูลหลักและ (หากมีอยู่บนเซิร์ฟเวอร์) จะดึงข้อมูลสดเพื่อรวมเข้าเป็นจริง คุณลองหรือยัง