أشجار عمل Git ومسارات العمل المتوازية
- ما هي شجرة عمل git — مستودع واحد، عدة أدلة عمل، كل منها على فرعه الخاص
- المشكلة المحددة التي تحلها: منع جلسات Claude المتوازية من التصادم على الملفات نفسها
- الأوامر الأربعة لإضافة أشجار العمل وعرضها وإزالتها
- متى تستحق هذه التقنية العناء — والمزالق الثلاثة التي تلدغ عند الدمج
- كيف تتكامل أشجار العمل مع الوكلاء الفرعيين: التوازي عبر الجلسات مقابل التوازي داخل جلسة واحدة
تتيح شجرة عمل git (git worktree) لمستودع واحد أن يمتلك عدة أدلة عمل، كل منها مسحوب (checked out) إلى فرع مختلف. اقرن ذلك بـ Claude Code وسيمكنك تشغيل عدة جلسات بالتوازي على المشروع نفسه — كل جلسة تحرّر ملفاتها الخاصة، دون أي تصادمات.
المشكلة التي يحلها
إذا حرّرت جلستا Claude دليل العمل نفسه في الوقت ذاته، فسوف تتعثر كل منهما بتغييرات الأخرى. تمنح أشجار العمل كل جلسة دليلها وفرعها الخاص، فيبقى العمل المتوازي معزولًا حتى تدمجه.
الأساسيات
تحمل أربعة أوامر سير العمل بأكمله: أضف شجرة عمل (دليل جديد + فرع جديد)، اعرض ما هو موجود، وأزل واحدة عند الانتهاء.
Guided walkthrough1 of 4
- من مستودعك، ينشئ الأمر git worktree add ../app-feature-a -b feat-a دليلًا جديدًا وفرعًا جديدًا دفعةً واحدة.
- git worktree add ../app-fix-123 -b fix-123 — دليل/فرع معزول ثانٍ، جنبًا إلى جنب مع الأول.
- يعرض git worktree list كل دليل عمل والفرع الموجود عليه.
- يفكّك git worktree remove ../app-feature-a شجرة عمل حتى لا تتراكم الأدلة القديمة.
سير العمل ذو الأوامر الأربعة
# from your repo git worktree add ../app-feature-a -b feat-a # new dir + new branch git worktree add ../app-fix-123 -b fix-123 git worktree list # when done with one: git worktree remove ../app-feature-a
افتح جلسة Claude Code في كل دليل شجرة عمل ودعها تعمل باستقلالية.
متى يستحق الأمر العناء
- ميزات/إصلاحات متوازية تريد إحراز تقدم فيها دفعةً واحدة.
- مهمة طويلة تعمل في شجرة عمل بينما تواصل العمل في أخرى.
- تجارب محفوفة بالمخاطر معزولة عن نسختك الرئيسية المسحوبة.
المزالق
- انتبه للدمج العكسي: ستُدمج الفروع في النهاية حتمًا — وعندئذٍ تظهر التعارضات، لا أثناء العمل. أبقِ أشجار العمل مركّزة وقصيرة العمر.
- لا تشغّل موارد ذات حالة ومشتركة (قاعدة بيانات تطوير واحدة، منفذ واحد) من شجرتي عمل دون فصلها.
- نظّف بـ git worktree remove حتى لا تتراكم الأدلة القديمة.
أشجار العمل مقابل الوكلاء الفرعيين
محوران مختلفان للتوازي — لا يتنافسان، بل يتراكمان.
| ما الذي يوازيه | العزل | |
|---|---|---|
| الوكلاء الفرعيون (Subagents) | العمل داخل جلسة واحدة (تفويض) | سياق معزول |
| أشجار العمل | العمل عبر الجلسات على القرص | فروع/ملفات معزولة |
وهما يتكاملان جيدًا: جلسة داخل شجرة عمل يمكنها بدورها أن تُنشئ وكلاء فرعيين.
- استخدم شجرة عمل عندما تحتاج إلى جلستَي Claude تلمسان المستودع نفسه في وقت واحد؛ واستخدم وكيلًا فرعيًا عندما تحتاج جلسة واحدة إلى نقل جزء من العمل إلى سياق معزول.
اختبر نفسك
0/4- شجرة عمل git = مستودع واحد، عدة أدلة عمل، كل منها على فرعه الخاص — وهي الأساس لجلسات Claude متوازية خالية من التصادم.
- تتعثر جلستان على دليل عمل واحد كل منهما بالأخرى؛ أما شجرة عمل لكل جلسة فتُبقي الملفات والفروع معزولة حتى تدمج.
- ينشئ git worktree add ../dir -b branch الدليل + الفرع؛ ويعرضها list؛ وينظّف remove.
- يستحق الأمر العناء للميزات/الإصلاحات المتوازية، والمهام طويلة الأمد إلى جانب عمل آخر، والتجارب المحفوفة بالمخاطر المعزولة.
- احذر الدمج العكسي، ولا تشارك موارد ذات حالة (قاعدة بيانات، منفذ) عبر أشجار العمل، ونظّف دائمًا — وتذكّر أن أشجار العمل تتكامل مع الوكلاء الفرعيين.