انتقلت من التخريب إلى بوابة، كيف يمكنني الدفع إلى هيروكو بأمان؟

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

  •  18-09-2019
  •  | 
  •  

سؤال

كنت أستخدم عملية تخريبية للتحكم المصدر الخاص بي، جنبا إلى جنب مع GIT فقط للنشر (الدفع) إلى Heroku. كان نمطي: تحديث نسخة العمل المحلية من أحدث سيد في مستودع التخريب عن بعد. ثم قم بإجراء ارتكاب GIT و GIT Push Heroku (تم تعيين git لتجاهل .svn الأشياء). هذه النسخة العاملة التي استخدمتها فقط للدفع إلى Heroku، كان لدي مجلد تخريب آخر للقيام بالتطوير الحي، والالتزام بمستودع التخريب عن بعد للتتبع.

لقد تحولت الآن إلى git بالكامل. لقد قمت باستيراد كامل من التخريب في مستودع جيت جديد عن بعد. لقد عملت بنجاح على نسخة عمل محلية من ريبو الجيتو (الأصل)، ودفع التغييرات عندما يناسبني (تعاون أيضا مع مطور واحد آخر، لكنني أشغل بشكل أساسي).

سؤالي:

أود الآن العودة إلى نسخة عمل GIT الأخرى التي كنت قد استخدمتها مسبقا للدفع إلى Heroku (التي لديها .svn / الأشياء فيها أيضا). أنا أفكر في إضافة مستودعي الجديد لجمع الجيت كدخول [أصل] في .git / التكوين .. سحب أحدث التغييرات من جهاز التحكم عن بعد الجديد من جيت الجديد، والادف إلى Heroku، لكنني أتساءل عما إذا كان الأمر غريب وبعد

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

يمكنني CLOBBER (حذف) أن نسخة تعمل (تستخدم للدفع إلى Heroku من التخريب)، وجعل استنساخا جديدا من مستودع GIT الجديد الخاص بي، ثم أضف Heroku إلى .git / التكوين. لكنني أشعر بالقلق، فسيظل الضغط على هيروكو سيؤدي إلى الخلط بينه، لأنني اعتدت الدفع من نسخة عمل مختلفة.

أي نصيحه تكون ممتازة!

شكرا مقدما!

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

المحلول

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

هناك بعض الخيارات المتاحة.

  1. ادفع التغييرات الأخيرة من مستودع GIT الجديد إلى Heroku، ثم قم بالتبديل إلى المستودع القديم وسحب من Heroku. هذا سيجلب لك مستودع قديم حتى الآن.

  2. قم بتغيير عنوان URL مؤقتا في ملف تكوين المستودع القديم للإشارة إلى المسار المحلي للمستودع الجديد. اسحب التغييرات الأخيرة من هناك، ثم الرجوع إلى عنوان URL Heroku عند الانتهاء. سيؤدي هذا أيضا إلى تحديث مستودعك القديم.

الخيار الأول هو الأكثر ملاءمة، والثاني هو جولة طويلة. وفي كلتا الحالتين، سيكون لديك نفس النتيجة الصافية لمستودع محدث محدث يحتوي على جميع التاريخ. يمكن التخلص من مستودع الفائض الجديد في كلتا الحالتين.

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

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

إذا كانت رغبتك هي ببساطة استخدام مستودع نظيف للعمل معه، فإن المرء الجديد سيكون المفضل. يمكن حذف المرء القديم دون آثار سيئة.

لإثبات ذلك - تحقق من التجزئة Sha-1 لالتزام في المستودعات الجديدة والقديمة، وسترى أنهم متطابقون. التجزئة فريدة من نوعها لجميع الالتزام، ويمكن استخدامها للتحقق من سلامة التعليمات البرمجية في جميع الأوقات. لن يكون هناك أكثر من تغيير واحد لأي تجميل معين.

  • كملاحظة جانبية، فإن المستودع محمول في أنه يحتوي على نفسي تماما، ويمكن نقله بحرية على مساحة التخزين الخاصة بك، أو حتى يتم استخدامه في التخزين الخارجي مثل محرك إبهام USB.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top