سؤال

ولدي بوابة استنساخ / الريبو في الخادم التنمية، ولكن سأنتقل الآن إلى واحد آخر. أنا لا أريد أن يرتكب كل ما عندي من الفروع المحلية وتغييرات على المستودع الرئيسي، فكيف يمكنني أن أجعل نسخة طبق الأصل من كل شيء على oldserver إلى newserver؟

وحاولت oldserver:~$ scp -rp project newserver:~/project

ولكن بعد ذلك أنا مجرد الحصول على كميات وكميات من أخطاء "typechange" عندما تحاول أن تفعل أي شيء على newserver.

وقال أحدهم شيئا عن وسائط العاشر، ولكن كيف يمكنني الحفاظ على ذلك عندما نقل الملفات بين ملقمات؟

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

المحلول

إذا كنت ترغب في حل بوابة، قد تتمكن من محاولة

git clone --mirror <oldurl> <newurl>

وعلى الرغم من هذا هو فقط للمستودعات العارية.

وإذا كان هذا هو الريبو غير عارية، هل يمكن أيضا القيام استنساخ طبيعي، تليها شيئا من هذا القبيل:

git fetch origin
git branch -r | grep '^ *origin/[^ ]*$' |
    while read rb; do git branch --no-track ${rb#*/} $rb; done
git remote rm origin

ويمكن أن الخطوة الوسطى بالطبع أن يتم في 5000 بطرق مختلفة، ولكن هذا واحد! (لاحظ أن خط استمرار \ ليس من الضروري بعد الأنابيب في باش - أنها تعلم أنها بحاجة إلى مزيد من المدخلات)

وأخيرا، أود أن أقترح استخدام رسينك بدلا من اللجنة الدائمة (ربما مع خيارات -avz؟) إذا كنت تريد نسخ مباشرة. (ما هي بالضبط هذه الأخطاء typechange؟)

نصائح أخرى

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

و"Typechange" أن أشير عادة إلى أشياء مثل الرمزي يصبح ملف أو العكس بالعكس. هي ملقمين تشغيل نفس OS؟

وأنت قد تحتاج أيضا إلى محاولة حل البكم بسيط - لا تقلق حول كيفية حصلت على typechanges هناك، ولكن دعونا بوابة إصلاح لهم أمر إعادة تعيين:

git reset --hard HEAD

وهذا فقط من المنطقي إذا (1) جميع مشاكل تتعلق إلى ملفات سحبه (وليس بنية المستودع نفسه) و (2) لم تقم بإجراء أية تغييرات على newserver التي كنت بحاجة إلى المحافظة.

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

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