لإضافة دليل واحد إلى تفقد مجتزأ (sparse checkout) موجود على جهاز Mac الخاص بك، افتح Terminal، وانتقل إلى جذر المستودع، ثم شغّل git sparse-checkout add 'path/to/directory'. يتيح Git الملفات المتبعة ضمن هذا الدليل في شجرة العمل مع الاحتفاظ بالتحديدات الأخرى للتفقد المجتزأ. إذا لم يكن المستودع مجتزأً بالفعل، فاستخدم git sparse-checkout set --cone 'path/to/directory' لتمكين وضع المخروط (cone mode) واختيار الدليل؛ يحدد هذا الإجراء نطاق التحديد، مما قد يؤدي إلى إزالة ملفات متبعة أخرى من شجرة العمل.

قبل تشغيل الأمر

يغير التفقد المجتزأ (Sparse checkout) الملفات المتبعة التي تظهر في شجرة عمل المستودع. تظل الملفات الواقعة خارج المنطقة المحددة متبعة بواسطة Git؛ ولا تُحذف من سجل المستودع. في وضع المخروط الافتراضي، يضمّن Git كل شيء ضمن الدليل المحدد، بالإضافة إلى الملفات الموجودة مباشرة داخل أصوله (الأدلة الرئيسية) وجذر المستودع. وهذا يعني أن إضافة دليل متداخل يمكن أن تجعل الملفات المجاورة على المستوى الأعلى أو مستوى الدليل الأصلي مرئية أيضًا. دليل sparse-checkout الخاص بـ Git

افتح Terminal وتأكد من توفر Git، ثم انتقل إلى داخل المستودع. على سبيل المثال، استبدل مسار العينة بموقع التفقد الخاص بك:

git --version
cd "$HOME/Projects/sample-repo"
git status --short

على جهاز Mac لا يحتوي على أدوات سطر أوامر Git مثبتة، قد يطالبك استدعاء git بتثبيت أدوات سطر الأوامر من Apple (Command Line Tools). اتبع موجه macOS، ثم شغّل git --version مرة أخرى. Apple: تثبيت أدوات سطر الأوامر (Command Line Tools)

استخدم git status --short للتحقق من التغييرات المحلية قبل تعديل التحديد المجتزأ. احتفظ بالأعمال المهمة غير المثبتة (uncommitted) أو غير المتبعة (untracked) في مكان آمن، خاصة إذا كانت داخل دليل قد يصبح مستبعدًا. شغّل أوامر sparse-checkout من داخل المستودع، واستخدم مسارات نسبية لجذره. ضع علامات اقتباس حول المسارات التي تحتوي على مسافات أو أحرف خاصة بغلاف الأوامر (shell metacharacters)، كما في الأمثلة، حتى يمرر zsh أو bash المسار إلى Git كوسيطة واحدة.

إضافة دليل إلى تفقد مجتزأ موجود

إذا كان التفقد المجتزأ ممكّنًا بالفعل، فأضف الدليل باستخدام:

git sparse-checkout add 'Packages/Map View'

استبدل Packages/Map View بمسار الدليل كما يظهر في المستودع. في وضع المخروط، يضيف هذا الأمر ذلك الدليل إلى التحديد الحالي بدلاً من استبدال الأدلة المحددة الأخرى. توضح وثائق Git أن أمر add يتطلب وجود تفقد مجتزأ مسبقًا؛ فهو يقوم بتحديث التحديد وشجرة العمل. مرجع أمر git sparse-checkout

لفحص الأدلة المحددة بعد ذلك، شغّل:

git sparse-checkout list
git status --short

تعرض القائمة أدلة التفقد المجتزأ. تساعدك الحالة (status) في معرفة ما إذا كانت الملفات المتبعة أو غير المتبعة قد عُدّلت؛ وهي لا تعرض الملفات المتبعة المحذوفة من العرض على أنها محذوفة فعليًا لمجرد أنها خارج نطاق التحديد المجتزأ.

إذا كان هذا تفقدًا عاديًا

بالنسبة للتفقد الكامل الذي ترغب في تحويله إلى تفقد مجتزأ يحتوي على دليل محدد، استخدم set:

git sparse-checkout set --cone 'Packages/Map View'

ينشئ الأمر set التحديد المجتزأ بناءً على المسارات التي تقدمها. ولا يحتفظ بالأدلة الأخرى من التفقد الكامل العادي كتحديدات إضافية. إذا كنت بحاجة إلى عدة أدلة، فضمّن كل واحد منها في نفس الأمر، على سبيل المثال git sparse-checkout set --cone 'Packages/Map View' 'Docs'. مرجع أمر git sparse-checkout

يمكن أن يؤدي تغيير التحديد إلى إزالة ملفات من شجرة العمل. تشير وثائق Git أيضًا إلى أنه عند تغيير تحديدات وضع المخروط، قد يحذف الملفات المتجاهلة (ignored files) في الأدلة التي لم تعد تحتوي على ملفات متبعة أو ملفات غير متبعة وغير متجاهلة. تحقق من حالتك واحمِ أي ملفات محلية تحتاجها قبل تشغيل set؛ إذا حذر Git من أن الملفات غير المتبعة تمنع عملية التنظيف، فافحص تلك الملفات بدلاً من فرض الإزالة. دليل sparse-checkout الخاص بـ Git

إذا أبلغ Git عن مشكلة

إذا ذكر الأمر git sparse-checkout add أن المستودع ليس في حالة تفقد مجتزأ، فحدد ما إذا كنت تنوي تضييق نطاق شجرة العمل. للقيام بذلك، استخدم أمر set --cone المذكور أعلاه. وإذا كنت تنوي الاحتفاظ بجميع الأدلة الحالية وإضافة دليل واحد فقط، فحدد أولاً الأدلة التي تريد الاحتفاظ بها، ثم مررها جميعًا مع الدليل الجديد إلى set --cone معًا.

إذا لم يكن المسار موجودًا بعد إضافته، فتأكد من صحة كتابته وحالة الأحرف مقارنة بالمسارات المتبعة في المستودع، وتحقق مما إذا كان موجودًا في الفرع الحالي. يحدد التفقد المجتزأ المسارات المتبعة؛ ولا يقوم بإنشاء دليل مفقود أو تهيئة وحدة فرعية (submodule) تلقائيًا. توضح وثائق Git أن تهيئة الوحدات الفرعية هي عملية منفصلة. دليل sparse-checkout الخاص بـ Git

يتحكم التفقد المجتزأ في الملفات التي يضعها Git في شجرة العمل؛ وهو ليس مماثلاً لنسخ دليل واحد فقط (cloning) أو حذف أدلة أخرى من المستودع. يدعم Git مرشحات استنساخ جزئي منفصلة للحد من الكائنات التي يتم تنزيلها من الخادم، ولكن التوفر والتأثير يعتمدان على إعدادات النسخ والخادم. يبدأ الخيار git clone --sparse بملفات المستوى الأعلى ويمثل سير عمل آخر لعملية استنساخ جديدة. وثائق Git clone

المصادر