سؤال

لقد بدأت للتو باستخدام git إلى جانب mercurial لتعريف نفسي مع git.

يمكنني استخدام ملحق MQ في Mercurial على نطاق واسع لإدارة التصحيحات المحلية، وأنا أبحث عن ما يعادل GIT.

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

شكرا،

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

المحلول

تحقق من قسم "طبقات واجهة إدارة التصحيح" الواجهات والولايات المتحدة والأدوات الصفحة على Git Wiki. هناك واجهات إدارة التصحيح اثنين المدرجة، أي ما يعادل تقريبا "MQ" mercurials تمديد:

  • جدي (git مكدسة)، أقدم من الاثنين، مكتوبة في بيثون، يستخدمان لقطات اثنين لتمثيل التصحيح
  • ذنب (سابقا "GQ")، مكتوبة كسلسلة من البرامج النصية باش، ملف السلسلة والبقع (واحد لكل ملف) يتم تخزينها كملف نصي عادي.
  • PG (بوليفات غير مكتمل) هو إهمال, ، ولم تعد الحفاظ عليها.

ولكن إذا لم تكن بحاجة إلى استخدام أكثر تقدما، فيمكنك استخدام بدلا من ذلك "git rebase - finteractive."إعادة ترتيب بقع، الاسكواش والتقسيم. وإدارة فرعك ضد الإصدار الحالي من المنبع، فإن" Git Rebase "عادة ما يكفي.

نصائح أخرى

إخلاء المسئولية: أنا لست مستخدم HG، لذلك قرأت عن HG ولكن ليس لديك تجربة مباشرة من استخدامها.

يوفر Git العديد من الأدوات القوية والمرنة للغاية لإدارة الفروع في أسلوب "قائمة انتظار التصحيح" حتى بالنسبة للعديد من الحالات الأساسية (وحتى معقدة للغاية)، فإن GIT الأصلي هو قوي بما فيه الكفاية.

عادة ما يحتفظ معظم المشاريع بفرع رئيسي مستقر مركزي يكتسب فقط يرتكب جديد ولا يتم تشغيله أبدا في فرع السيد.

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

تشمل أنشطة إدارة التصحيح النموذجية:

إعادة صياغة قائمة انتظار التصحيح على أحدث فرع مستقرة - استخدم git rebase,

تكرار قائمة انتظار التصحيح على فرع الصيانة القديمة - استخدام git branch و git rebase,

إعادة ترتيب التصحيحات في قائمة الانتظار - استخدام git rebase --interactive (الملقب ب git rebase -i) استخدام محرر نصي لإعادة ترتيب قائمة الانتظار.

سحق بقع - استخدام git rebase -i مع توجيه الاسكواش

تغيير بقع أو رسائل ارتكاب التصحيح - استخدام git rebase -i (بقعة موضوع؟) مع التوجيه تحرير.

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

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

النشر هذا الالتزام باعتباره التصحيح الرئيسي "مستقرة" هو الفعل الذي يقول: هذا الآن الالتزام الذي لن يتغير وهو جزء من التاريخ غير القابل للتغيير للمشروع.

ما عليك سوى استخدام فرع و Rebase ضد فرع Upstream الخاص بك بانتظام. هذا أسهل في إدارة وأكثر أمانا من استخدام MQ (الذي فقدته البيانات في الماضي).

git لا يوفر حقا هذه الميزة نفسها. اعتمادا على استخداماتك، قد تتمكن من الحصول على "Git Stash" و / أو الفروع، لكنها ستكون أساسية جميلة. إذا كان لدى الأشخاص احتياجات إدارة التصحيح أكثر تقدما مع GIT، يبدو أنهم يتحولون إلى لحاف أو STGIT: انظر http://git.or.cz/gitwiki/patchmanagement.

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