เพียงเพื่อความสมบูรณ์:
มีวิธีอื่นคือฉันอยากจะแนะนำ: การผสานทรีย่อย
ตรงกันข้ามกับ submodules ง่ายต่อการบำรุงรักษา คุณจะสร้างที่เก็บแต่ละแห่งด้วยวิธีปกติ ขณะที่อยู่ในพื้นที่เก็บข้อมูลหลักของคุณคุณต้องการรวมต้นแบบ (หรือสาขาอื่น ๆ ) ของที่เก็บข้อมูลอื่นในไดเรกทอรีของไดเรกทอรีหลักของคุณ
$ git remote add -f OtherRepository /path/to/that/repo
$ git merge -s ours --no-commit OtherRepository/master
$ git read-tree --prefix=AnyDirectoryToPutItIn/ -u OtherRepository/master
$ git commit -m "Merge OtherRepository project as our subdirectory"`
จากนั้นเพื่อดึงที่เก็บอื่นไปยังไดเรกทอรีของคุณ (เพื่ออัปเดต) ให้ใช้กลยุทธ์การรวมทรีย่อย:
$ git pull -s subtree OtherRepository master
ฉันใช้วิธีนี้มานานหลายปีแล้วมันใช้งานได้ :-)
เพิ่มเติมเกี่ยวกับวิธีนี้รวมถึงการเปรียบเทียบกับโมดูลย่อยสามารถพบได้ใน git howto docนี้