كيف يمكنني شوكة مشاريع متعددة في مستودع واحد مع GIT؟

StackOverflow https://stackoverflow.com/questions/1718454

  •  19-09-2019
  •  | 
  •  

سؤال

لدي 3 مشاريع أود أن شوكة. إنهم جميعا مرتبطون ببعضهم البعض - تغيير واحد من المرجح أن يتطلب تغييرا إلى آخر. لأنهم جميعا مرتبطون بهم، أود إنشاء مستودع واحد للشوك، مع الحفاظ على القدرة على سحب التحديثات من كل أصلي.

كيف أقوم بإعداد مستودع GIT الخاص بي؟

هذه هي الأفكار الأولية لذلك لن أتفاجأ إذا كان هذا مجنون / غبي. فعلا؟

هل كانت مفيدة؟

المحلول

يمكنك دائما استخدام "git remote add <name> <url>"لإضافة المزيد من المستودعات كمصدر.

نصائح أخرى

قد تكون مهتما git-fullodule. وظائف. اقتباس من هنا:

يسمح دعم Fundule Git للمستودع لاحتواءه، كدليل فرعي، خروج لمشروع خارجي. نقل الأسفل الحفاظ على هويتها الخاصة؛ يدعم الدعم المنخفض فقط موقع مستودع المخزون والمعرف الالتزام، لذلك يمكن للمطورين الآخرين الذين استنساخ المشروع المحتوي ("SuperProject" ("SuperProject") بسهولة استنساخ جميع الخدمات القائمة على نفس المراجعة. تكون الخروج الجزئية من SuperProject ممكنة: يمكنك معرفة GIT لاستنساخ أي شيء أو بعض الأسفلات.

هناك احتمال واحد لم أحاول أبدا "حقيقي" ولكن قد يعمل جيدا.

دعنا نقول أن لديك ثلاثة مشاريع تسمى بشكل خلاق proj1., proj2. و (تخمين ذلك) proj3.. وبعد دعونا نقول أيضا أن كل أو بعضهم يعتمدون على المكتبات الخارجية، على سبيل المثال واحد يسمى lib1.dll. وآخر دعا superlib.dll..

أولا، للحصول على هيكل المجلد، سأفعل شيئا مثل:

MyCode\
    build_all.bat
    Docs\
        [...]
    Libs\
        Lib1.dll
        SuperLib.dll
    Proj1\
        [...]
    Proj2\
        [...]
    Proj3\
        [...]

ثم تقوم بإنشاء مستودع واحد على كل من مجلدات Projx:

cd \MyCode\Proj1
git init
cd \MyCode\Proj2
git init
cd \MyCode\Proj3
git init

ثم يمكنك إنشاء مستودع للجميع كله:

cd \MyCode
git init

محتويات هذا المستودع، لجيت، سيكون Libs مجلد ومحتوياته، build_all.bat بناء البرنامج النصي، و 3 من المشاريع الفرعية.

لذلك بمجرد تغيير شفرة المصدر الخاصة بك، دعنا نقول Proj1\Main.cs, ، ال الشئ كله لن يرى التعديل. سيكون لديك ل git commit على ProJ1، ثم ستذهب إلى الشئ كله وثم git commit سيكون (الآن GIT سيكون قادرا على معرفة ذلك تم تعديل ProJ1).

باستخدام هذه الطريقة، تاريخ الشئ كله ستذكر ببساطة عندما تم تعديل Projx، لكنها لن تتبع مباشرة الملفات الفردية مباشرة. How المئكر، كما هو متوقع، فإن المستودع في Projx سيستمر في تتبع كل ملف، كالعادة.

إذا أعطيتها تجربة "مشروع حقيقي"، فأعلمني أن أعرف النتائج!

حظ سعيد!

أعتقد أنني يجب أن أستخدم استراتيجية دمج الفرعية. وبعد سأضطر بالفعل إلى محاولة ذلك ومعرفة ما إذا كان جيدا. سأعلم هذه الإجابة كما هو مقبول إذا كان هذا يتضح أن يكون نهجا جيدا.

في الوقت نفسه، ما زلت مفتوحا للحصول على الاقتراحات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top