Git Submodule คืออะไร? วิธีใช้จัดการ Dependencies

Git Submodule คืออะไร?

Git Submodule ช่วยให้คุณสามารถรวม Repository อื่นเข้าไปในโปรเจ็กต์ของคุณ โดยยังคงเป็น Git Repository อิสระ ซึ่งเป็นเครื่องมือที่มีประโยชน์เมื่อต้องการจัดการ Dependencies ที่เป็น Git Repository โดยไม่ต้องทำ Copy-Paste Code การใช้ Submodule ช่วยให้สามารถอัปเดตแต่ละ Module ได้อย่างอิสระ และติดตามเวอร์ชันของแต่ละ Module ได้ ซึ่งมีประโยชน์มากในการพัฒนา Application บน Cloud VPS ของ ผู้ให้บริการโฮสติ้ง

ใช้งาน Submodule เมื่อไร?

ก่อนตัดสินใจใช้ Submodule ให้พิจารณาสถานการณ์เหล่านี้

  • ใช้ Shared Library จากโปรเจ็กต์อื่นในองค์กร
  • บริหารจัดการ Dependencies ที่เป็น Git Repository (เช่น Custom Plugins หรือ Frameworks)
  • ติดตามเวอร์ชันของ External Code อย่างชัดเจน
  • แบ่งปันส่วนของ Code กับหลาย Projects
  • ลดขนาดของ Repository หลักโดยการแยก Components ออกมา

เพิ่ม Submodule

# เพิ่ม Submodule พื้นฐาน
git submodule add https://github.com/user/shared-lib.git libs/shared-lib

# เพิ่ม Submodule พร้อม Branch ที่กำหนด
git submodule add -b main https://github.com/user/shared-lib.git libs/shared-lib

# เพิ่ม Submodule โดยใช้ SSH
git submodule add [email protected]:user/shared-lib.git libs/shared-lib

คำสั่งนี้จะสร้างไฟล์ .gitmodules และเพิ่ม Submodule เข้าในโปรเจ็กต์ โดยทำการสร้างไฟล์นี้ให้ Commit ไปด้วย