دعم Git Worktree وصل الآن إلى Claude Code (وهو رائع حقاً)

BBetter Stack
컴퓨터/소프트웨어AI/미래기술

Transcript

00:00:00تلقى “Claude Code” كمًا هائلاً
00:00:02من التحديثات مؤخرًا، بدءًا من دعم SSH في تطبيق Claude لسطح المكتب،
00:00:05ومعاينات التطبيقات، والتكامل مع GitHub،
00:00:07وصولاً إلى الوضع البسيط في واجهة الأوامر،
00:00:09الذي يتخلص من المهارات والإضافات والأدوات المخصصة،
00:00:11مما يجعله سهلاً للمهام الأساسية.
00:00:13لكن التحديث الأكبر على الإطلاق هو الدعم الأصلي لـ “work tree”،
00:00:16مما يعني أن وكلائك البرمجيين يمكنهم العمل على ميزات متعددة
00:00:18أو إصلاح أخطاء بشكل منفصل
00:00:20دون الحاجة لتهيئة أي شيء يدويًا.
00:00:23لكن هل تم إطلاق هذا التحديث قبل أوانه،
00:00:25في ظل مواجهة الكثير من المطورين لمشاكل أساسية؟
00:00:28اشترك في القناة، ودعنا نبدأ التفاصيل.
00:00:30استخدام ميزة “work trees” في Git مع الوكلاء البرمجيين ليس بالأمر الجديد.
00:00:33في الواقع، توفرت هذه الميزة في Claude Desktop منذ فترة،
00:00:35وهناك العديد من الإضافات أو الأدوات التي تدعمها،
00:00:37مثل “Claude Squad” الذي سبق وصنعنا فيديو عنه.
00:00:41لكن أحد الأسباب التي جعلتني لا أستخدمها شخصيًا
00:00:43هو أن القيام بذلك يدويًا قد يزيد من الجهد الذهني،
00:00:46وآمل أن تجعل هذه الميزة الجديدة في “Claude Code”
00:00:49الأمر أسهل بكثير بالنسبة لي.
00:00:50دعونا نجربها.
00:00:51لدينا هنا تطبيق مهام بسيط مبني بواسطة Claude باستخدام React.
00:00:54لأغراض الاختبار، لن أقوم ببناء هذا التطبيق
00:00:56لأي سبب آخر سوى التجربة.
00:00:58على أي حال، أود إضافة زر للوضع الليلي
00:01:01لأن هذا البياض يرهق عيني.
00:01:02كما أود إضافة ميزة حفظ المهام
00:01:04في التخزين المحلي (local storage) لأنها تضيع عند تحديث الصفحة.
00:01:07وأريد إضافة القدرة على تعديل المهام.
00:01:10عادةً، كنت سأضع كل هذه الميزات في طلب (prompt) واحد،
00:01:12أي الوضع الليلي، والتخزين المحلي،
00:01:14والقدرة على تعديل المهام.
00:01:16المشكلة في ذلك هي أنه إذا ظهر خطأ في إحدى الميزات،
00:01:20سأضطر للعمل على المشروع بالكامل،
00:01:22مما يؤخر إطلاق الميزات الأخرى
00:01:25لأن كل شيء موجود في نفس طلب السحب (PR) أو الفرع.
00:01:28لكن مع “work trees”،
00:01:28يمكنني العمل على هذه الميزات في فروع منفصلة
00:01:31في آن واحد على جهازي المحلي
00:01:33دون الحاجة لأي إعداد يدوي.
00:01:35وإذا حدثت مشكلة في إحدى هذه الميزات،
00:01:37يمكنني رفع الميزتين الأخريين
00:01:39والعمل على الميزة المتعثرة في فرعها الخاص.
00:01:41دعوني أريكم كيف نفعل ذلك.
00:01:42إذا قمت بتشغيل “Claude Code” مع علامة W،
00:01:45فسيفتح لي “work tree”
00:01:47باسم عشوائي يختاره Claude.
00:01:49مهلاً، “Lacan”؟
00:01:50حسنًا.
00:01:52لكن إذا أردت تسمية الـ “work tree” بنفسي،
00:01:54سأضع الاسم بعد علامة W،
00:01:56كما سأفعل هنا.
00:01:58هذا ينشئ لي “work tree” جديدًا هنا،
00:02:00ويقوم أيضًا بإنشاء فرع جديد،
00:02:02لكنه لا يحذف الـ “work tree” السابق الذي أنشأناه.
00:02:05لذا ضع ذلك في اعتبارك
00:02:06إذا انتهى بك الأمر بإنشاء الكثير من الـ “work trees” المؤقتة.
00:02:08وفي مجلد “.claude” الخاص بالمشروع تحت “worktrees”،
00:02:11يمكننا استعراض الـ “work tree” الخاص بنا
00:02:13ورؤية جميع ملفات الكود المرتبطة به.
00:02:15ملاحظة، ميزة “work trees” تعمل فقط
00:02:16إذا كان مشروعك يستخدم نظام Git
00:02:18وقمت بإجراء التزام (commit) واحد على الأقل.
00:02:20الآن يمكنني البدء بتنفيذ كل الميزات
00:02:22في هذا المشروع عبر “work trees” مختلفة.
00:02:24الآن انتهى العمل على الميزات الثلاث،
00:02:26ونرى هنا أن زر الوضع الليلي يعمل.
00:02:29في هذا الفرع، لا يوجد زر وضع ليلي،
00:02:31لكن يمكنني تعديل المهمة.
00:02:32سأضيف مهمة جديدة وأقوم بتغييرها هنا.
00:02:35وفي نسخة التخزين المحلي، يبدو أن هناك مشكلة،
00:02:38لكن هذه هي فائدة الـ “work trees”
00:02:40لأنني أرى أن الميزتين الأخريين تعملان جيدًا.
00:02:43لذا يمكنني اعتمادهما أو إنشاء طلب سحب لهما،
00:02:44بينما أركز على هذه الميزة
00:02:46وأستخدم جلسة “Claude Code” مخصصة
00:02:48لإصلاح هذا الخلل.
00:02:49وعندما أنتهي من الـ “work tree”،
00:02:51يمكنني إما الاحتفاظ به للعودة إليه لاحقًا
00:02:53أو حذفه من جهازي.
00:02:54إذا قررت الاحتفاظ به،
00:02:55يمكنني العودة إلى نفس الـ “work tree” تمامًا
00:02:58إذا حددت الاسم، كما ترون هنا.
00:03:00حتى أنه يمكنني استئناف الجلسات من الـ “work tree” الحالي
00:03:03أو الضغط على Control + W لرؤية جميع الجلسات في هذا المشروع.
00:03:06رغم أنني لست متأكدًا تمامًا
00:03:07كيف يحدد الجلسة الحالية،
00:03:08بما أنني الآن على الفرع الرئيسي (main).
00:03:11وبالحديث عن الجلسة الحالية،
00:03:12إذا أردت العمل من داخل مجلد الـ “work tree”،
00:03:15يمكنك إما الانتقال إليه مباشرة
00:03:16باستخدام الأمر cd .claude/worktrees وما إلى ذلك،
00:03:19أو تشغيل “worktrees” مع علامة tmux،
00:03:21والتي ستنقلك مباشرة إلى ذلك المجلد.
00:03:23وإذا فتحت نافذة منقسمة جديدة،
00:03:26سترون أنني داخل هذا الـ “work tree”
00:03:27ويمكنني تصفح الملفات الخاصة به.
00:03:30لكن أروع شيء في الـ “work trees”
00:03:31هو دعمها للوكلاء الفرعيين (sub-agents)،
00:03:33مما يعني أنه يمكنني تكليف وكلاء فرعيين مختلفين
00:03:35بالعمل على ميزات متعددة في فروع مختلفة
00:03:38ضمن نفس جلسة “Claude Code”.
00:03:40وإذا أردت دعم الـ “work tree” في الوكلاء الفرعيين المخصصين،
00:03:42ليقوم الوكيل المخصص بإنشاء “work tree” تلقائيًا،
00:03:45كل ما عليك فعله هو إضافة خيار “isolation work tree”
00:03:48في البيانات الوصفية (front matter) وسيتولى Claude الباقي.
00:03:50بشكل عام، أنا معجب حقًا بهذه الميزة
00:03:52وهي شيء سأستخدمه بالتأكيد
00:03:54بشكل مكثف،
00:03:55خاصة مع خطافات (hooks) الـ “work tree” الجديدة
00:03:57التي تتيح لك استخدامها بدون Git،
00:04:00مثل SVN أو Jujutsu وغيرها،
00:04:02وأيضًا تشغيل السكربتات تلقائيًا
00:04:04عند إنشاء “work tree” جديد.
00:04:05لكن لسوء الحظ، يبدو أن الكثير من الناس
00:04:08واجهوا مشاكل مع الـ “work trees”
00:04:09منذ تحديثات “Claude Code” الأخيرة
00:04:11بسبب ما يبدو أنه خلل في علامة الميزة (feature flag).
00:04:13لحسن الحظ، يمكنك جعل “Claude Code” يصلح ملفه التنفيذي الخاص
00:04:17كإجراء مؤقت،
00:04:18لكن نأمل أن يقدم الفريق حلاً جذريًا لاحقًا
00:04:21ليتمكن المزيد من الناس من تجربة هذه الميزة الرائعة.
00:04:24وبالحديث عن الميزات الرائعة،
00:04:25إذا كنت مطور React وتريد أداة سطر أوامر
00:04:28لاكتشاف الأنماط البرمجية السيئة في React تلقائيًا،
00:04:31فشاهد هذا الفيديو من Andris
00:04:33الذي يشرح فيه أداة “React Doctor”.

Key Takeaway

يقدم تحديث Claude Code الجديد دعماً ثورياً لميزة Git Worktree تتيح للمطورين والوكلاء البرمجيين إدارة مهام متعددة وفروع منفصلة بكفاءة عالية وتزامن تام.

Highlights

إطلاق ميزة الدعم الأصلي لـ Git Worktree في أداة Claude Code البرمجية.

إمكانية العمل على ميزات متعددة أو إصلاح أخطاء في فروع منفصلة بشكل متزامن دون تداخل.

تقليل الجهد الذهني للمطورين من خلال أتمتة إنشاء الفروع وبيئات العمل.

دعم الوكلاء الفرعيين (Sub-agents) للعمل على مهام مختلفة في آن واحد.

إضافة خيارات تخصيص متقدمة مثل علامة tmux وخطافات العمل (Worktree hooks) لأنظمة أخرى مثل SVN.

وجود بعض المشكلات التقنية المؤقتة في التحديث الأخير وكيفية التعامل معها برمجياً.

Timeline

مقدمة وتحديثات Claude Code الجديدة

يستعرض المتحدث مجموعة من التحديثات الأخيرة التي تلقاها تطبيق Claude لسطح المكتب وأداة Claude Code. تشمل هذه التحديثات دعم SSH ومعاينات التطبيقات والتكامل مع منصة GitHub، بالإضافة إلى إطلاق "الوضع البسيط" لواجهة الأوامر الذي يسهل المهام الأساسية. يركز القسم بشكل خاص على الميزة الأهم وهي الدعم الأصلي لـ Git Worktree التي تسمح للوكلاء بالعمل على ميزات منفصلة. يطرح المتحدث تساؤلاً حول ما إذا كان التحديث قد أطلق مبكراً بسبب بعض المشاكل التي واجهها المطورون. تهدف هذه المقدمة لتمهيد الطريق لشرح كيفية تغيير هذه الميزة لأسلوب العمل البرمجي.

مفهوم Worktrees وفوائدها في التنظيم البرمجي

يوضح المتحدث أن استخدام Worktrees مع الوكلاء البرمجيين ليس فكرة جديدة، لكن دمجها الأصلي في Claude Code يقلل الجهد الذهني المطلوب للإعداد اليدوي. يضرب مثالاً عملياً باستخدام تطبيق مهام مبني بـ React، حيث يحتاج لإضافة ثلاث ميزات: الوضع الليلي، والتخزين المحلي، وتعديل المهام. يشرح المشكلة التقليدية المتمثلة في وضع كل الميزات في طلب سحب (PR) واحد، مما يؤدي لتعطيل المشروع بالكامل إذا ظهر خطأ في ميزة واحدة. تسمح ميزة Worktrees بفصل هذه المهام في فروع مستقلة تعمل معاً على الجهاز المحلي. يساهم هذا النهج في تسريع إطلاق الميزات الجاهزة دون انتظار إصلاح الميزات المتعثرة.

التطبيق العملي وكيفية تشغيل Worktrees

يشرح هذا الجزء كيفية تفعيل الميزة تقنياً باستخدام علامة W عند تشغيل Claude Code لفتح بيئة عمل جديدة. يمكن للمستخدم ترك الأداة تختار اسماً عشوائياً للـ Worktree أو تحديد اسم مخصص يتبعه إنشاء فرع جديد تلقائياً. يوضح المتحدث مكان تخزين هذه الملفات داخل مجلد مخفي يسمى ".claude" حيث يمكن استعراض كود المصدر المرتبط بكل بيئة. يتم التأكيد على شرط أساسي وهو ضرورة استخدام نظام Git في المشروع وإجراء التزام (commit) واحد على الأقل قبل البدء. يساعد هذا الشرح المطورين على فهم الهيكلية المجلدية وكيفية إدارة البيئات المؤقتة بكفاءة.

إدارة الجلسات وإصلاح الأخطاء بشكل مستقل

يستعرض الفيديو نتائج العمل على الميزات الثلاث، حيث يظهر نجاح ميزة الوضع الليلي وتعديل المهام وفشل ميزة التخزين المحلي. بفضل Worktrees، يمكن للمطور تقديم الميزات الناجحة فوراً مع تخصيص جلسة Claude Code مستقلة لإصلاح الخلل في الميزة المتبقية. يوضح المتحدث خيارات الاحتفاظ ببيئة العمل للعودة إليها لاحقاً أو حذفها نهائياً من الجهاز بعد الانتهاء. يمكن استئناف الجلسات بسهولة عبر اختصارات لوحة المفاتيح مثل Control + W لرؤية كافة الجلسات النشطة في المشروع. تبرز هذه الفقرة مرونة الأداة في التعامل مع سيناريوهات التطوير الواقعية والمعقدة.

الميزات المتقدمة: الوكلاء الفرعيون والتحكم في البيئة

ينتقل المتحدث لوصف الميزات الأكثر تقدماً، وعلى رأسها دعم الوكلاء الفرعيين (sub-agents) الذين يمكنهم تولي مهام في فروع مختلفة بشكل متوازي. يتم شرح كيفية أتمتة إنشاء Worktrees للوكلاء المخصصين عبر إضافة خيار "isolation work tree" في البيانات الوصفية. كما يتطرق لاستخدام علامة tmux للانتقال الفوري لمجلد العمل وفتح نوافذ منقسمة لتصفح الملفات. يذكر أيضاً ميزة "الخطافات" (hooks) الجديدة التي تسمح باستخدام أنظمة تحكم في الإصدار غير Git مثل SVN أو Jujutsu. تتيح هذه الأدوات تشغيل سكربتات تلقائية عند بدء أي بيئة عمل جديدة، مما يعزز من قوة الأتمتة.

المشاكل الحالية والحلول المؤقتة والخاتمة

يختتم الفيديو بمناقشة التحديات التقنية، حيث يقر بوجود خلل في "علامة الميزة" (feature flag) سبب مشاكل لبعض المستخدمين في التحديثات الأخيرة. يقترح المتحدث حلاً طريفاً ومؤقتاً يتمثل في جعل Claude Code يصلح ملفه التنفيذي الخاص لمعالجة الخلل البرمجي. يعرب عن أمله في صدور إصلاح جذري من فريق التطوير قريباً لتمكين الجميع من الاستفادة من هذه التقنية. في النهاية، يوصي المتابعين بمشاهدة فيديو آخر حول أداة "React Doctor" لاكتشاف الأنماط البرمجية السيئة. يلخص هذا القسم الحالة الراهنة للأداة ويقدم نصائح عملية للمطورين لتجاوز العقبات التقنية الحالية.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video