โมโนรีโพและโมดูลย่อยของ Git
เรียนรู้ข้อแลกเปลี่ยนระหว่างโมโนรีโพกับการตั้งค่าหลายคลังเก็บ และวิธีที่โมดูลย่อยของ Git ฝังคลังเก็บหนึ่งไว้ภายในอีกคลังเก็บหนึ่ง
โมโนรีโพและโมดูลย่อยของ Git เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
โมโนรีโพกับหลายรีโพ
โมโนรีโพจัดเก็บหลายโครงการไว้ในรีโพซิทอรีเดียว ส่วนโครงสร้างแบบหลายรีโพจะแยกแต่ละโครงการไว้ในรีโพซิทอรีของตนเอง ทั้งสองรูปแบบพบได้ทั่วไปในระบบขนาดใหญ่
เหตุใดทีมจึงเลือกใช้โมโนรีโพ
โมโนรีโพทำให้คุณสามารถ:
- แบ่งปันโค้ดระหว่างโครงการ
- ปรับโครงสร้างโค้ดข้ามขอบเขตได้ในครั้งเดียว
- ใช้ระบบผสานรวมอย่างต่อเนื่องและรูปแบบการกำหนดรุ่นแบบเดียวกัน
ความท้าทายของโมโนรีโพ
โมโนรีโพขนาดใหญ่อาจเติบโตจนมีขนาดมาก ทำให้การโคลนและการตรวจสอบอัตโนมัติช้าลง เครื่องมืออย่างการดึงข้อมูลเฉพาะส่วนและแคชการสร้างช่วยจัดการปัญหานี้ได้
ซับโมดูลคืออะไร
ซับโมดูล คือที่เก็บข้อมูลระบบควบคุมเวอร์ชันแยกต่างหากที่ฝังอยู่ภายในที่เก็บข้อมูลอีกแห่ง ณ คอมมิตหนึ่งโดยเฉพาะ ที่เก็บข้อมูลภายนอกจะติดตามว่าควรใช้คอมมิตใดจากที่เก็บข้อมูลภายใน
การเพิ่มซับโมดูล
ฝังที่เก็บข้อมูลภายนอกไว้ที่เส้นทางหนึ่งด้วย git submodule add
git submodule add https://github.com/org/shared-lib libs/sharedไฟล์การตั้งค่าซับโมดูล
ระบบควบคุมเวอร์ชันจะบันทึกเส้นทางและที่อยู่ของแต่ละซับโมดูลไว้ในไฟล์ .gitmodules ที่ติดตามอยู่ ณ รากของที่เก็บข้อมูล
[submodule 'libs/shared']
path = libs/shared
url = https://github.com/org/shared-libการโคลนพร้อมซับโมดูล
การโคลนแบบปกติจะปล่อยโฟลเดอร์ซับโมดูลให้ว่างเปล่า ให้ใช้แฟล็กแบบเรียกซ้ำเพื่อดึงซับโมดูลมาด้วย
git clone --recurse-submodules https://github.com/org/appการเริ่มต้นซับโมดูลที่มีอยู่
หากคุณโคลนที่เก็บข้อมูลมาแล้ว ให้ดึงเนื้อหาของซับโมดูลด้วยการเริ่มต้นและอัปเดต
git submodule update --init --recursiveการอัปเดตซับโมดูล
ซับโมดูลจะถูกตรึงไว้กับคอมมิตหนึ่ง หากต้องการเลื่อนไปยังรุ่นล่าสุด ให้อัปเดตภายในซับโมดูล แล้วคอมมิตตัวชี้ใหม่ไว้ในที่เก็บข้อมูลหลัก
git submodule update --remote libs/shared
git add libs/shared
git commit -m 'Bump shared lib'ซับโมดูลเทียบกับซับทรี
ซับทรีของระบบควบคุมเวอร์ชัน เป็นทางเลือกที่ผสานเนื้อหาของที่เก็บข้อมูลอีกแห่งเข้ามาโดยตรง ทำให้ไม่ต้องจัดการกับความซับซ้อนของตัวชี้ที่ตรึงไว้ แต่จะสูญเสียการแยกส่วนที่ชัดเจน
การเลือกแนวทาง
ใช้โมโนเรโปสำหรับโครงการที่เชื่อมโยงกันอย่างแน่นแฟ้น ใช้ซับโมดูลเพื่อฝังไลบรารีที่ใช้ร่วมกันแต่จัดการรุ่นแยกกัน และใช้หลายที่เก็บข้อมูลเมื่อแต่ละทีมทำงานได้อย่างเป็นอิสระเต็มที่
ตรวจสอบความเข้าใจ
ทดสอบความเข้าใจของคุณเกี่ยวกับโมโนเรโปและซับโมดูล
ทบทวน
คุณได้เรียนรู้เกี่ยวกับโมโนเรโปและซับโมดูลดังนี้:
- โมโนเรโปรวมหลายโครงการไว้ที่ศูนย์กลาง ส่วนหลายที่เก็บข้อมูลจะแยกโครงการออกจากกัน
- ซับโมดูลฝังที่เก็บข้อมูลที่ตรึงไว้กับคอมมิตหนึ่งผ่าน
.gitmodules - โคลนด้วย
--recurse-submodules - ซับทรีเป็นอีกแนวทางหนึ่งสำหรับการฝังที่เก็บข้อมูล
คำถามที่พบบ่อย
บทเรียน “โมโนรีโพและโมดูลย่อยของ Git” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “โมโนรีโพและโมดูลย่อยของ Git” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “โมโนรีโพและโมดูลย่อยของ Git”
เรียนรู้ข้อแลกเปลี่ยนระหว่างโมโนรีโพกับการตั้งค่าหลายคลังเก็บ และวิธีที่โมดูลย่อยของ Git ฝังคลังเก็บหนึ่งไว้ภายในอีกคลังเก็บหนึ่ง คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “โมโนรีโพและโมดูลย่อยของ Git” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- Git ใน IDE และเครื่องมือพัฒนา
- โซลูชัน Git ระดับองค์กร
- การปรับขนาด Git สำหรับทีมขนาดใหญ่
- โมโนรีโพและโมดูลย่อยของ Git