سؤال

سبق أن استخدمنا العديد من الأسفلات في مستودعاتنا الرئيسية، ولكن لزيادة إمكانية الصيانة لمشاريعنا، بدأنا فرع تجريبي حيث استبدلنا جميعا مع السكتة الدماغيين.

عمل هذا جيدا - ولكن الآن عندما أحاول تحديث أحد SUBTRES، فإنه يدمج عن طريق الخطأ التحديث في دليل خاطئ تماما ليس حتى الآن.

المستودع الرئيسي، حيث يحتوي الفرع "الفرعي" على الفرع التجريبي، هو: git: //github.com/hugowetterberg/goodold_drupal.git.

مستودع التخزين للاندماج في التحديثات من: git: //github.com/voxpelli/drupal-oembed.git.

دمج القيام به: جيت دمج -س الفرعية OEMBEDE / ماجستير

المسار يجب دمج التحديثات في: مواقع / جميع / الوحدات / OEDBED /

المسار الذي يتم دمجه في: الوحدات / المجمع / الترجمات /

أي شخص لديه فكرة عن كيفية الحصول على التحديثات في السكتة الدماغية أو ما يمكن أن يكون الخطأ؟

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

المحلول

لسوء الحظ، هذا خطأ (أو ميزة مفقودة) في رمز "GIT Merge-Subtree". في الواقع التخمينات السكتاتية التي تريد دمجها. عادة ما تبين ذلك بطريقة سحرية صحيحة، ولكن إذا كان الفرد الفرعي يحتوي على الكثير من التغييرات (أو كان فارغا في الأصل، أو أيا كان)، فيمكنه أن يفشل بشكل مذهل.

أفضل طريقة للعمل حولها هي:

  1. دمج الملفات كما فعلت أعلاه.

  2. نقل جميع الملفات الناتجة يدويا إلى أين ينبغي رحل.

  3. git commit -a --amend لتصحيح دمج الالتزام.

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

التجريبية "git subtree."القيادة لديها --prefix المعلمة التي يجب أن تتيح لك تجاوز هذا، ولكن لسوء الحظ، لا يعمل في الوقت الحالي (نظرا لأنه يتطلب العمل حول ميزات "Git Merge-Subtree"، لم يكن هناك وقت للقيام بذلك).

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

نصائح أخرى

git الإصدار 1.7.9.5.

git pull -s subtree <remote name> <remote branch>

(دمج ذهب إلى الدليل الخطأ)

git reset --hard HEAD^
git pull -s subtree -Xsubtree=correct/directory <remote name> <remote branch>

لاحظ أنه لا يوجد مائل زائدة على الدليل

شكرًا Apenwarr.

http://git.661346.n2.nabble.com/patch-0-8-thetreturn-of-xours-xtheirs-xsubtree-dir-td4069081.html.

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