Hub documentation

طلبات الدمج والمناقشات

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

طلبات الدمج والمناقشات

تتيح طلبات الاستخلاص (Pull requests) والمناقشات (Discussions) في Hub للمستخدمين تقديم مساهمات مجتمعية إلى المستودعات. تعمل طلبات الاستخلاص والمناقشات بنفس الطريقة لجميع أنواع المستودعات.

على مستوى عالٍ، يهدف الأمر إلى بناء نسخة أبسط من طلبات الدمج والقضايا لدى مضيفي git الآخرين (مثل GitHub):

  • لا يتم استخدام أي فروع: يقوم المساهمون بدفع التغييرات إلى فرع ref خاص مباشرةً على المستودع المصدر.
  • لا يوجد تمييز صارم بين النقاشات وطلبات الدمج: فهي في الأساس متطابقة، لذا تُعرض في القوائم نفسها.
  • هي مصممة لتبسيط مهام التعلم الآلي (أي مستودعات النماذج/المجموعات البيانات/المساحات)، وليس المستودعات العامة.

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

قائمة

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

عرض

تتيح لك صفحة المناقشة الاطلاع على التعليقات من مختلف المستخدمين. وإذا كان الأمر يتعلق بطلب سحب، يمكنك الاطلاع على جميع التغييرات بالانتقال إلى تبويب الملفات المُعدَّلة.

تعديل عنوان نقاش / طلب سحب

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

تثبيت نقاش / طلب سحب

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

قفل نقاش / طلب سحب

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

تعديل التعليقات وإدارتها

إذا كتبت تعليقًا أو كان لديك صلاحية الكتابة في المستودع، يمكنك تعديل محتوى التعليق من القائمة السياقية في الزاوية العلوية اليمنى من مربع التعليق.

بمجرد تعديل التعليق، ستظهر رابط جديد فوق التعليق. يعرض هذا الرابط سجل التعديلات.

يمكنك أيضًا إخفاء تعليق. إخفاء التعليق إجراء غير قابل للتراجع، ولن يتمكن أي شخص من رؤية محتواه أو تحريره بعد ذلك.

اقرأ أيضًا التعتيم لمعرفة كيفية الإبلاغ عن تعليق مسيء.

هل يمكنني استخدام Markdown و LaTeX في تعليقاتي ومناقشاتي؟

نعم! يمكنك استخدام Markdown لإضافة تنسيقات إلى تعليقاتك. بالإضافة إلى ذلك، يمكنك استخدام LaTeX لتنسيق المعادلات الرياضية، حيث سيتم عرض صيغك باستخدام KaTeX قبل تحليلها في Markdown.

لمعادلات LaTeX، يجب عليك استخدام الحدود التالية:

  • $$ ... $$ لوضع العرض
  • \\(...\\) للوضع المضمّن (بدون مسافة بين العوارض والقوسين).

كيف أدير طلبات الدمج محليًا؟

لنفترض أن رقم طلب الإرسال الخاص بك هو 42.

git fetch origin refs/pr/42:pr/42
git checkout pr/42
# Do your changes
git add .
git commit -m "Add your change"
git push origin pr/42:refs/pr/42

وضع المسودة

يُعد وضع المسودة (Draft mode) هو الحالة الافتراضية عند فتح طلب سحب (Pull request) جديد من الصفر في “الوضع المتقدم”. بهذه الحالة، يدرك المساهمون الآخرون أن طلب السحب الخاص بك قيد العمل ولا يمكن دمجه. عندما يصبح فرعك جاهزًا، ما عليك سوى الضغط على زر “النشر” (Publish) لتغيير حالة طلب السحب إلى “مفتوح” (Open). لاحظ أنه بمجرد النشر، لا يمكنك العودة إلى وضع المسودة.

حذف مرج طلب الدمج

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

بعد إغلاق أو دمج طلب الإرسال (PR)، ستظهر لك إشعار في أسفل النقاش يعرض التخزين التقديري الذي يمكن تحريره عن طريق حذف المرجع (ref). انقر على زر “Delete ref” لإزالة مرجع git الخاص بطلب الإرسال بشكل دائم واستعادة المساحة التخزينية.

يكون هذا مفيدًا بشكل خاص عندما تكون الفرع الرئيسي قد تم ضغطه (squash) وحُذفت الملفات لاحقًا. تبقى تلك الملفات في سجل فرع طلب الإضافة (PR) حتى لو لم تُضف بواسطة طلب الإضافة نفسه، مما يستهلك مساحة تخزين يمكن تحريرها.

حذف مرج طلب الدمج عملية لا رجعة فيها. بمجرد حذفه، لن تتمكن بعد الآن من جلب أو استبدال التزامات طلب الدمج محليًا.

استخدام متقدم لطلبات السحب

أين تُخزَّن التغييرات في مستودع git؟

لا تستخدم طلبات الدمج لدينا فروعاً مستقلة أو فروعاً، بل تستخدم بدلاً من ذلك “فروعاً” مخصصة تسمى refs تُخزَّن مباشرةً في المستودع المصدر.

Git References هي الآلية الداخلية في git التي تخزّن بالفعل الوسوم والفروع.

الميزة في استخدام مراجع مخصصة (مثل refs/pr/42 على سبيل المثال) بدلاً من الفروع هي أنها لا تُجلب (بشكل افتراضي) من قِبل الأشخاص (بما في ذلك “مالك” المستودع) الذين يستنسخون المستودع، لكن يمكنهم ما زال جلبها عند الطلب.

جلب جميع طلبات الدمج: لسحرة git 🧙‍♀️

يمكنك تعديل refspec المحلي لديك لجلب جميع طلبات الدمج:

  1. جلب
git fetch origin "refs/pr/*:refs/remotes/origin/pr/*"
  1. إنشاء فرع محلي يتتبع المرجع
git checkout pr/{PR_NUMBER}
# for example: git checkout pr/42
  1. IF إذا أجريت تعديلات محلية، فلتدفع إلى مرجع طلب الدمج:
git push origin pr/{PR_NUMBER}:refs/pr/{PR_NUMBER}
# for example: git push origin pr/42:refs/pr/42
Update on GitHub