كيف يمكنني نقل دليل واحد من بوابة مستودع إلى مستودع مع الحفاظ على التاريخ ؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

لقد ورثت بوابة مستودع يحتوي على مشاريع متعددة في أدلة منفصلة.أود أن تقسيم المخزون إلى فرد جديد مستودعات واحد لكل مشروع ومن ثم يكون سيد مستودع يحتوي على مشاريع الوحدات الفرعية.أود أن تفعل كل هذا مع الحفاظ على مراجعة التاريخ من المشاريع الفردية إذا كان ذلك ممكنا.

لا يمكن استنساخ مستودع لكل مشروع وإزالة كافة مشاريع أخرى في كل مرة ، ولكن هناك طريقة أفضل لتجنب الاضطرار المستنسخة التاريخ في كل مشروع جديد مخزن ؟

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

المحلول

ويمكنك استخدام git filter-branch لإعادة كتابة التاريخ من المشروع. من وثائق:

<اقتباس فقرة>   

لإعادة كتابة مستودع لتبدو كما   إذا foodir / كان الجذر مشروعها،   وتجاهل كل التاريخ أخرى:

git filter-branch --subdirectory-filter foodir -- --all

تأكد عدة نسخ من الريبو الخاصة بك، ونفعل ذلك كل دليل فرعي تريد تقسيم بها، ويجب أن تصل الرياح مع ما كنت أبحث عنه.

نصائح أخرى

لتصدير مجلد جديد مستودع تحتاج:

  1. إلى استنساخ مستودع حيث المجلد الذي تريد التصدير.
  2. لإنشاء مستودع فارغ على مزود استضافة الخاص بك كما جيثب, تخزين المجلد الذي تم تصديره.
  3. فتح استنساخ مستودع مجلد تشغيل هذا الأمر:

    git subtree push --prefix=YourFolderNameToExport https://github.com/YourUserName/YourNewCleanRepoName master
    

وهذه النقطة من بوابة هي أن التاريخ يتجسد في كل ارتكاب كتبها تجزئة الوالد الالتزام. هل يمكن أن "إعادة" ولجان (هذا هو أساسا كيف يعمل إس المستورد) إلى مستودع جديد وفقط حفظ كل مشروع من الباطن. هذا، ومع ذلك، من شأنه أن يدمر معنى ارتكاب التجزئة. إذا كان لديك أي مشكلة في ذلك فليكن.

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

وأنا أيضا لا أعرف من أي أدوات للصق من دليل. أفترض أنك يمكن أن GIT-تسجيل على الدليل للعثور على جميع يرتكب على ذلك، ثم اعادتها يرتكب مع شيء من هذا القبيل GIT-سريع التصدير؟

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