git worktree
مساحات العمل والمشاريع الكبيرة
استخراج عدة فروع في آن واحد في مجلدات منفصلة
يعطي الأمر 'git worktree' مستودعًا واحدًا عدة مجلدات عمل. لكل مجلد فرع مختلف مستخرج بملفاته ومنطقة تجهيزه، بينما السجل مشترك. إنه البديل عن الـ stash حين تضطر لتبديل المهمة: افتح الفرع العاجل في مجلد آخر ودع عملك الجاري دون مساس. لا يمكن استخراج فرع إلا في مجلد واحد في الوقت نفسه.
الصيغة
git worktree add [-b <new-branch>] <path> [<commit-ish>]
git worktree list
git worktree remove <worktree>
git worktree prune[ ] اختياري| أو<arg> قيمة تُستبدل... قابل للتكرار--flag خيار
الخيارات
اختيار الخيار المناسب
تبديل المهام
ثلاث طرق
| الأمر | تعديلاتك | المجلدات |
|---|---|---|
git stash + switch | تُركن جانبًا ثم تُستعاد | واحد |
git commit (WIP) + switch | في commit مؤقت | واحد |
git worktree add | دون مساس | اثنان |
أمثلة
فرع جديد في مجلد جديد
git worktree add ../hotfix -b hotfixالمجلد ../hotfix على فرع جديد.
فرع موجود
git worktree add ../review feature/loginمراجعة فرع دون مغادرة فرعك.
السرد
git worktree listكل مجلد مع فرعه.
إزالة
git worktree remove ../hotfixحذف المجلد الإضافي.
أمثلة على سير العمل
1
git worktree add ../hotfix -b hotfix mainفتح main في مجلد جديد
2
cd ../hotfixالإصلاح والتسجيل والدفع هناك
3
git worktree remove ../hotfixنظّف حين تنتهي
حل المشكلات
fatal: 'hotfix' is already used by worktree
السبب: ذلك الفرع مستخرج في مجلد آخر
اعمل في ذلك المجلد، أو أزل الـ worktree أولًا
نصائح وأخطاء شائعة
أفضل الممارسات
- ✓ضع الـ worktrees بجانب المجلد الرئيسي (../name)، لا داخله.
أخطاء متكررة
- ✗حذف مجلد worktree يدويًا — استخدم git worktree remove (أو prune بعده).
- ✗محاولة استخراج الفرع نفسه في مجلدين.
الأسئلة الشائعة
A:
نعم: مستودع واحد وسجل واحد؛ تختلف الملفات المستخرجة فقط.