كيف يمكنني نقل دليل واحد من بوابة مستودع إلى مستودع مع الحفاظ على التاريخ ؟
-
03-07-2019 - |
سؤال
لقد ورثت بوابة مستودع يحتوي على مشاريع متعددة في أدلة منفصلة.أود أن تقسيم المخزون إلى فرد جديد مستودعات واحد لكل مشروع ومن ثم يكون سيد مستودع يحتوي على مشاريع الوحدات الفرعية.أود أن تفعل كل هذا مع الحفاظ على مراجعة التاريخ من المشاريع الفردية إذا كان ذلك ممكنا.
لا يمكن استنساخ مستودع لكل مشروع وإزالة كافة مشاريع أخرى في كل مرة ، ولكن هناك طريقة أفضل لتجنب الاضطرار المستنسخة التاريخ في كل مشروع جديد مخزن ؟
المحلول
ويمكنك استخدام git filter-branch
لإعادة كتابة التاريخ من المشروع. من وثائق:
لإعادة كتابة مستودع لتبدو كما إذا foodir / كان الجذر مشروعها، وتجاهل كل التاريخ أخرى:
git filter-branch --subdirectory-filter foodir -- --all
اقتباس فقرة>
تأكد عدة نسخ من الريبو الخاصة بك، ونفعل ذلك كل دليل فرعي تريد تقسيم بها، ويجب أن تصل الرياح مع ما كنت أبحث عنه.
نصائح أخرى
لتصدير مجلد جديد مستودع تحتاج:
- إلى استنساخ مستودع حيث المجلد الذي تريد التصدير.
- لإنشاء مستودع فارغ على مزود استضافة الخاص بك كما جيثب, تخزين المجلد الذي تم تصديره.
فتح استنساخ مستودع مجلد تشغيل هذا الأمر:
git subtree push --prefix=YourFolderNameToExport https://github.com/YourUserName/YourNewCleanRepoName master
وهذه النقطة من بوابة هي أن التاريخ يتجسد في كل ارتكاب كتبها تجزئة الوالد الالتزام. هل يمكن أن "إعادة" ولجان (هذا هو أساسا كيف يعمل إس المستورد) إلى مستودع جديد وفقط حفظ كل مشروع من الباطن. هذا، ومع ذلك، من شأنه أن يدمر معنى ارتكاب التجزئة. إذا كان لديك أي مشكلة في ذلك فليكن.
في الماضي لقد المستنسخة فقط لأنها وانتقلت. هذا يجعل الأمور أكبر ولكن مساحة القرص رخيصة. وقتي هو الثمن.
وأنا أيضا لا أعرف من أي أدوات للصق من دليل. أفترض أنك يمكن أن GIT-تسجيل على الدليل للعثور على جميع يرتكب على ذلك، ثم اعادتها يرتكب مع شيء من هذا القبيل GIT-سريع التصدير؟