كيف يمكنني شوكة مشاريع متعددة في مستودع واحد مع GIT؟
-
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 سيستمر في تتبع كل ملف، كالعادة.
إذا أعطيتها تجربة "مشروع حقيقي"، فأعلمني أن أعرف النتائج!
حظ سعيد!
أعتقد أنني يجب أن أستخدم استراتيجية دمج الفرعية. وبعد سأضطر بالفعل إلى محاولة ذلك ومعرفة ما إذا كان جيدا. سأعلم هذه الإجابة كما هو مقبول إذا كان هذا يتضح أن يكون نهجا جيدا.
في الوقت نفسه، ما زلت مفتوحا للحصول على الاقتراحات.