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 خيار

الخيارات

انقر على أي خيار لتوسيعه

مبتدئ (3)

سرد كل مجلدات العمل مع commit‏ها وفرعها.

موصى بهمعرفة أي فرع مفتوح وأين

مثال

git worktree list

حذف مجلد عمل (يجب ألا تكون فيه تغييرات غير مسجَّلة ما لم يُستخدم --force).

موصى بهالطريقة النظيفة لحذف worktree

مثال

git worktree remove ../hotfix

نسيان الـ worktrees التي حُذفت مجلداتها يدويًا.

عند الحاجةالتنظيف بعد حذف مجلد يدويًا

مثال

git worktree prune

اختيار الخيار المناسب

تبديل المهام

ثلاث طرق

الأمرتعديلاتكالمجلدات
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:

نعم: مستودع واحد وسجل واحد؛ تختلف الملفات المستخرجة فقط.