เรามีบางโมดูลที่เราได้ทำสิ่งนี้และสิ่งที่เราทำคือ:
- ติดตั้ง repo Git สำหรับโมดูล
- ปรับใช้โมดูลนี้ในโค้ดเบสของไซต์ที่ใช้งานจริงและทำทุกสิ่งรวมถึง:
- ซอฟต์ลิงค์ที่สร้างขึ้นโดย modman
- ไดเร็กทอรี. modman ซึ่งเป็นที่เก็บโมดูลที่โคลน
- ใช้ modman เพื่อ "ปรับใช้" ในเวอร์ชันอื่นและ / หรือสภาพแวดล้อม dev สำหรับ dev และการทดสอบ
ด้วยวิธีนี้ทำให้คุณมีความยืดหยุ่นที่คุณต้องการสำหรับการพัฒนาโมดูลรุ่นของรหัสในเว็บไซต์เดียวเช่นกันและหากคุณทำการเปลี่ยนแปลงโมดูลใน codebase เว็บไซต์เดียวคุณสามารถส่งกลับไปยังที่เก็บโมดูลได้โดยตรงตั้งแต่ repo นั้นมีอยู่ในไดเรกทอรี. modman
อัปเดต:
เมื่อฉันเขียนสิ่งนี้ในตอนแรกฉันไม่ได้คำนึงถึงคำตอบของฉันว่า Git ไม่อนุญาตให้โมดูล (sub) มุ่งมั่นในพื้นที่เก็บข้อมูลซึ่งในกรณีนี้ "ทำทุกอย่าง" ต้องการความละเอียดบางอย่าง!
อนึ่งนี่เป็นเพราะฉันทำสิ่งนี้บ่อยขึ้นโดยใช้ modman ในการปรับใช้โมดูลที่อยู่ใน Git repos เป็น codebase ที่ผลิตโดย SVN …และการโค่นล้มนั้นไม่มีการป้องกันอย่างเด็ดขาดเพื่อป้องกันไม่ให้ต้นไม้ Git ทั้งหมดกับ VCS
ดังนั้นที่นี่ไป ...
หากคุณกำลังใช้ SVN เพื่อเก็บรหัสของไซต์ที่ใช้งานจริงคุณไม่ควรมีปัญหาเนื่องจากการโค่นล้มมี (ในทางปฏิบัติ) ไม่มีแนวคิดของโมดูลย่อย ไม่เป็นไรหรอก
หากคุณใช้ Git สำหรับรหัสของไซต์ที่ใช้งานจริงคุณจะต้องใช้โมดูลย่อยเพื่อ "ยอมรับทุกอย่าง" ไปยังที่เก็บรหัสของไซต์ หลังจากใช้ modman เพื่อโคลนสิ่งนี้:
modman clone ssh://git@bitbucket.org/<user>/<repo>.git
คุณจะต้องการเพิ่มเป็นโมดูลย่อยเช่น:
git submodule add ssh://git@bitbucket.org/<user>/<repo>.git .modman/<repo>
เมื่อคุณทำสิ่งนี้แล้วคุณควรจะสามารถเพิ่มไดเร็กทอรี. modman และไฟล์. gitmodules ให้กับดัชนีและทำการคอมมิท
หลังจากการโคลนที่เก็บซึ่งใช้โมดูลเหล่านี้ติดตั้งผ่าน modman เพียงแค่เริ่มต้น submodules และอัพเดท:
git submodule init
git submodule update
ป.ล. ตอนนี้ฉันใช้ Git เต็มเวลาในโครงการใหม่ทั้งหมดดังนั้นหวังว่าการกำกับดูแลนี้จะไม่เกิดขึ้นอีก ขอโทษนะเพื่อน. ;)