معاينة طلب سحب
مراجعة فرق في المتصفح تخبرك إن كانت الشيفرة تُقرأ جيدًا. وهي لا تخبرك إن كان التطبيق ما زال يقلع. ولمعرفة ذلك عليك تشغيل الفرع — وهنا يتعثّر الناس، لأن طلب السحب القادم من تفريعة يعيش في مستودع لم تستنسخه قط، وغالبًا لا تملك الإرسال إليه.
المعاينة المحلية تحلّ ذلك بحقيقة لا يحتاج معظم الناس إلى تعلّمها أبدًا: المنصات تنشر رأس كل طلب سحب بوصفه مرجع git عاديًا على المستودع الهدف. لا يلزم أن تكون التفريعة قابلة للوصول، ولا تحتاج إلى رمز API، ولا يُضاف مستودع بعيد ثانٍ. عملية جلب واحدة، وتصبح الشيفرة على قرصك.

| المضيف | أين يعيش رأس طلب السحب |
|---|---|
| GitHub، GitHub Enterprise، Gitea، Forgejo، Gogs | refs/pull/<n>/head |
| GitLab (السحابي والمستضاف ذاتيًا) | refs/merge-requests/<n>/head |
| Bitbucket Cloud، Bitbucket Server | refs/pull-requests/<n>/from |
| Azure DevOps | refs/pull/<n>/merge |
يجسّ Gitcito الأنماط الأربعة كلها في استدعاء ls-remote واحد، فتعمل منصة غير
مألوفة أو مستضافة ذاتيًا ما دامت تتبع أحد هذه الأعراف.
فتحها
- قائمة طلبات السحب في الشريط الجانبي — زر السهم على أي مدخل. هذا يعمل مع كل مضيف، على خلاف عرض التفاصيل المقتصر على GitHub.
- لوحة الأوامر: معاينة طلب سحب محليًا.
- داخل عرض تفاصيل طلب السحب، بجوار زر «افتح في المتصفح».
ما الذي تعطيه إياه
المستودع البعيد — المستودع الذي فُتح طلب السحب تجاهه، وهو عادةً origin.
لا التفريعة.
طلب السحب — الرقم، أو رابط متصفح ملصوق. تعمل الصيغ 7 و#7 و
https://github.com/owner/repo/pull/7 كلها؛ وكذلك أشكال روابط GitLab
وBitbucket وAzure DevOps. اضغط ابحث فيخبرك Gitcito بالمرجع الذي حلّه
وبالالتزام الذي يشير إليه، قبل جلب أي شيء.
الفرع البعيد — اللسان الثاني، لحين عدم وجود مرجع طلب سحب يُعثر عليه: مضيف لا ينشرها، أو فرع تريد تجربته ببساطة. أعطِ اسم الفرع كما هو موجود على المستودع البعيد.
طريقتا التطبيق
لا تكتب أي منهما التزامًا. وهذا مقصود — معاينة لا تستطيع الانصراف عنها ليست معاينة.
| الوضع | ما الذي يحدث | كيف تتراجع عنه |
|---|---|---|
| فرع محلي | يُجلب المرجع إلى فرع خاص به (pr/7 افتراضيًا) ويُسحب. فروعك الأخرى تبقى دون مساس. |
التراجع يعيدك إلى الفرع الذي كنت عليه ويحذف فرع المعاينة. |
| دمج لم تلتزم به | يُدمج المرجع في الفرع الحالي بـ --no-commit --no-ff، فتبقى الشجرة المدمجة محضَّرة كي تبني وتختبر. |
التراجع يُجهض الدمج. |
معاينة طلب السحب نفسه مرتين تعيد استخدام الفرع نفسه وتنقله إلى الرأس الجديد — وهو أمر مفيد حين يرسل المؤلف إصلاحًا وأنت تختبر. وحين يكون ذلك الفرع موجودًا سلفًا، يقول Gitcito ذلك ويسأل قبل إعادة ضبطه، لأن أي التزام يعيش هناك وحده سيضيع.
ما الذي لن تفعله
- لا تستطيع اختراع مرجع لا ينشره المضيف. بعض التهيئات المستضافة ذاتيًا تعطّل مراجع طلبات السحب؛ وبعض المنصات لم تملكها يومًا. تحصل على رسالة واضحة «لا مرجع للطلب رقم n» ويكون لسان الفرع البعيد هو المخرج.
- لا تجلب الوسوم. المعاينة يجب ألّا تجرّ فضاء أسماء وسوم شخص آخر إلى مستودعك.
- وضع الدمج يحتاج شجرة عمل نظيفة. يرفض git الدمج فوق عمل غير ملتزَم به؛ أخفِ التغييرات أولًا.
- المعاينة ليست مراجعة. إنها تضع الشيفرة على حاسوبك — وهي لا توافق ولا تعلّق ولا تدمج شيئًا. ذلك شأن الاستضافة وطلبات السحب.
- التفريعات الخاصة تبقى خاصة. مرجع طلب السحب يقدّمه المستودع الهدف، فالوصول يتبع بيانات اعتمادك لـذلك المستودع البعيد — انظر الأمان.
التنظيف بعدها
فرع المعاينة فرع عادي: احذفه من الشريط الجانبي حين تنتهي، أو اضغط تراجع مباشرةً بعد المعاينة. ودمج المعاينة الذي تُرك غير ملتزَم به يمكن إسقاطه بالتراجع، أو حلّه والالتزام به إن قررت أنك تريده في النهاية — وعندها يكفّ عن كونه معاينة ويصير دمجًا.