تجاوز إلى المحتوى
العربية
المستوى 10: Force Multipliers
الدرس 10 · +10 XP

worktrees: نسخ معزولة من الـ repo الخاص بك

للعمل المتوازي خطرٌ خفيّ: وظيفتان تحرّران المشروع نفسه دفعةً واحدة ستتعثّران بملفات بعضهما. الحل هو منح كلٍّ منهما نسختها الخاصة.

الـ worktree هو checkout ثانٍ حقيقي لمشروعك على branch خاص به — كي يكون branch حيًّا في مجلد واحد بينما يكون branch آخر حيًّا في مجلد بجواره تمامًا.

عادةً يُظهر مجلد مشروعك branch واحدًا في كل مرة. بدّل الـ branches فتتغيّر الملفات في ذلك المجلد الواحد لتطابقه. ما يعني أنك لا تستطيع أن تكون «على» سوى branch واحد في كل مرة — وإذا كان Claude يعمل على الـ branch B هناك، فلا تستطيع أنت أيضًا أن تفعل شأنك على الـ branch A في المجلد نفسه.

الـ worktree يكسر ذلك الحدّ. إنه مجلد ثانٍ، مسحوبٌ (checked out) إلى branch مختلف، يشارك الـ repository الأساسي نفسه. الـ branch A في مجلدك الأصلي، والـ branch B في الـ worktree — كلاهما حيٌّ، في الوقت نفسه.

ليس نسخًا ولصقًا

هذه هي النقطة التي تربك الناس. الـ worktree ليس «نسخ الملفات إلى مجلد جديد». ذلك سينحرف عن التزامن ويفقد ارتباطه بتاريخ المشروع.

إنه checkout ثانٍ أصيل للـ repository نفسه. التاريخ نفسه، ومجموعة الـ branches نفسها المتاحة — لكن branch مختلف مسحوب في كل مجلد. اعمل commit في الـ worktree فيهبط في الـ repo نفسه الذي يراه مجلدك الأصلي.

repository واحد، مجلدا عمل (أو أكثر)، كلٌّ على branch خاص به.

فيمَ يُستخدم

هذا هو ثمرة المستوى بأكمله. دع agent يكدح في تغيير كبير في worktree بينما تواصل أنت العمل — أو تبقي agent ثانيًا يعمل — في المجلد الرئيسي. مجلدات مختلفة، branches مختلفة، ولا تعثّر بملفات بعضها.

إنه الصورة الفيزيائية لقاعدة الاستقلالية من الدرسين الأخيرين: العمل المتوازي يجب ألا يتصادم، والمجلدات المنفصلة تضمن ذلك. (تستطيع الـ tools إنشاء worktrees وتنظيفها نيابةً عنك، فنادرًا ما تديرها يدويًا.)

ما التالي

هذه نهاية المستوى 10 — وحافة «أنت، في جلسة واحدة». كل ما هنا أبقاك في المقعد: تكتب، وتراقب، وتقود. المستوى 11 يهدم الجدارين المتبقيين — ربط Claude بالـ tools الأخرى الخاصة بك، وتركه يعمل حين لا تكون حاضرًا أصلًا.