عن المشروع
gh stack هي إضافة لـ GitHub CLI تدير الفروع المكدسة وطلبات السحب. تقسم طلبات السحب المكدسة تغييرًا كبيرًا إلى سلسلة من طلبات سحب صغيرة قابلة للمراجعة يبني بعضها على بعض؛ وتؤتمت هذه الأداة إنشاء الفروع، وإبقاء الفروع مُعاد تأسيسها، وضبط فروع PR الأساسية الصحيحة، والتنقل بين الطبقات.
يتم التثبيت عبر `gh extension install github/gh-stack` ويتطلب GitHub CLI الإصدار 2.0+. يمكن تثبيت مهارة اختيارية لوكلاء البرمجة بالذكاء الاصطناعي.
النموذج الأساسي: المكدس هو قائمة مرتبة من الفروع، كل فرع مبني على الذي تحته، والفرع السفلي مبني على فرع جذعي (عادة main). تُخزن بيانات المكدس محليًا في `.git/gh-stack` بصيغة JSON، مع حالة إعادة التأسيس في ملف منفصل.
تشمل الأوامر:
- init: تهيئة مكدس، مع خيار تبني فروع موجودة، وجذع قابل للتكوين.
- add: إنشاء فرع جديد فوق المكدس، مع خيارات لتجهيز التغييرات وإيداعها.
- checkout: الخروج إلى مكدس برقم المكدس أو رقم PR أو رابط PR أو اسم الفرع، بما في ذلك منتقي تفاعلي للمكدسات المحلية والبعيدة.
- rebase: جلب وإعادة تأسيس متسلسلة عبر المكدس، مع نطاقات downstack/upstack/no-trunk ومعالجة continue/abort.
- modify: واجهة طرفية تفاعلية لإسقاط الفروع ودمجها وإدراجها وإعادة تسميتها وإعادة ترتيبها.
- sync: جلب، وتسوية المكدس البعيد، وتقديم سريع للجذع، وإعادة تأسيس متسلسلة، ودفع، ومزامنة حالة PR، وربط المكدس، مع خيار تقليم الفروع المدمجة.
- push: دفع الفروع النشطة مع فحوصات force-with-lease لكل فرع.
- submit: دفع الفروع وإنشاء أو تحديث طلبات السحب ومكدس GitHub، مع محرر تفاعلي أو وضع تلقائي.
- link: إنشاء أو تحديث مكدس GitHub من أسماء الفروع أو أرقام طلبات السحب دون تتبع محلي، مفيد مع أدوات الفروع المحلية الأخرى.
- merge: دمج واحد أو أكثر من طلبات السحب المكدسة في عملية الكل أو لا شيء، مع خيارات طريقة الدمج ووعي بطابور الدمج.
- view: عرض فروع المكدس والترتيب وروابط طلبات السحب وأحدث الإيداعات، مع مخرجات قصيرة وJSON.
- unstack/delete: إزالة مكدس من التتبع المحلي و/أو GitHub.
- أوامر التنقل (up، down، top، bottom) تنقل بين الفروع في المكدس الحالي.
يوثق README الأعلام والأمثلة والشروط المسبقة والسلوكيات مثل معالجة التباعد وتفاعلات طابور الدمج بالتفصيل.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.