الإعداد

تجاهل الملفات

تحكّم في الملفات التي يمكن لـ Bob Shell الوصول إليها عبر إنشاء ملف `.bobignore` في مشروعك.

نظرة عامة

الميزةالوصفالفائدة
استبعاد المساراتمنع Bob Shell من الوصول إلى ملفات أو مجلدات محددةحماية المعلومات الحساسة
مطابقة الأنماطاستخدام أنماط glob لمطابقة ملفات متعددةاستبعاد أنواع ملفات بكفاءة
دعم النفيتجاوز الاستبعادات لملفات محددةتحكم دقيق
خاص بالمشروعيمكن لكل مشروع أن يمتلك قواعد استبعاد خاصة بهمخصص لاحتياجات المشروع

لماذا تستخدم .bobignore؟

  • حماية الخصوصية: احتفظ بسرية الملفات الحساسة مثل مفاتيح API وبيانات الاعتماد
  • تحسين الأداء: استبعد الملفات الثنائية الكبيرة أو المجلدات التي تبطئ العمليات
  • تقليل الضوضاء: احذف الملفات غير ذات الصلة من سياق Bob Shell
  • التحكم في التركيز: وجّه انتباه Bob Shell نحو الأجزاء الأكثر صلة من قاعدة الكود

كيف يعمل .bobignore

عندما تضيف مسارات إلى ملف .bobignore، ستستبعد أدوات Bob Shell التي تحترم هذا الملف تلقائيًا الملفات والمجلدات المطابقة من عملياتها. على سبيل المثال، عند استخدام أمر read_many_files، ستُتخطى أي مسارات في ملف .bobignore.

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│                 │     │                 │     │                 │
│  Your project   │────▶│  .bobignore     │────▶│  Files Bob Shell │
│  files          │     │  filter         │     │  can access     │
│                 │     │                 │     │                 │
└─────────────────┘     └─────────────────┘     └─────────────────┘

التغييرات على ملف .bobignore تستلزم إعادة تشغيل جلسة Bob Shell لتصبح فعّالة.

صيغة الأنماط

يتبع ملف .bobignore نفس صيغة الأنماط كـ .gitignore:

النمطالوصفمثال
file.txtيطابق ملفًا محددًاapikeys.txt
*.extيطابق جميع الملفات بالامتداد*.log
/dir/يطابق مجلدًا/node_modules/
/path/to/fileيرسو المسار إلى الجذر/src/config/secrets.json
!patternينفي نمطًا سابقًا!important.md
#سطر تعليق# API credentials

البدء

إنشاء ملف .bobignore

  1. أنشئ ملفًا باسم .bobignore في جذر مجلد مشروعك
  2. أضف أنماطًا للملفات والمجلدات التي تريد استبعادها
  3. احفظ الملف وأعد تشغيل جلسة Bob Shell
# From your project root
touch .bobignore
echo "# Files to ignore" > .bobignore
echo "secrets/" >> .bobignore

أنماط الاستبعاد الشائعة

إليك بعض الأنماط الشائعة التي قد ترغب في إضافتها إلى ملف .bobignore:

# Sensitive information
.env
secrets/
*password*
*credential*
*apikey*

# Large directories
node_modules/
.git/
dist/
build/

# Binary and media files
*.zip
*.tar.gz
*.mp4
*.jpg
*.png

# Log files
*.log
logs/

أمثلة على الأنماط

استبعاد مجلدات محددة

لاستبعاد مجلدات بأكملها ومحتوياتها:

# Exclude the packages directory and all its contents
/packages/

# Exclude all node_modules directories anywhere in the project
**/node_modules/

# Exclude the dist directory but only at the root level
/dist/

استخدام أحرف البدل

تتيح لك أحرف البدل مطابقة ملفات متعددة بأنماط مشابهة:

# Exclude all markdown files
*.md

# Exclude all JavaScript files in the src directory
/src/**/*.js

# Exclude all files with "test" in their name
*test*

استخدام النفي

يمكنك تجاوز الاستبعادات لملفات محددة:

# Exclude all markdown files
*.md

# But include README.md
!README.md

# And include all markdown files in the docs directory
!docs/*.md

الاستخدام المتقدم

دمج الأنماط

يمكنك إنشاء قواعد استبعاد متطورة بدمج الأنماط:

# Exclude all JavaScript files
*.js

# But include all files in the src directory
!src/**/*.js

# Except for test files in the src directory
src/**/*.test.js

تصحيح أخطاء ملف .bobignore

إذا بدا أن Bob Shell يتجاهل ملفات تريده أن يصل إليها، أو يصل إلى ملفات تريد تجاهلها:

  1. تحقق من ملف .bobignore للأنماط المتعارضة
  2. تذكر أن الأنماط الأكثر تحديدًا (مثل النفي) يجب أن تأتي بعد الأنماط العامة
  3. أعد تشغيل جلسة Bob Shell بعد إجراء التغييرات
  4. استخدم المسارات المطلقة إذا كانت المسارات النسبية لا تعمل كما هو متوقع

أفضل الممارسات

  • ابدأ بسيطًا: ابدأ بعدد قليل من الأنماط الأساسية وأضف المزيد حسب الحاجة
  • علّق على أنماطك: أضف تعليقات لتوضيح سبب استبعاد ملفات معينة
  • كن محددًا: استخدم أنماطًا دقيقة لتجنب الاستبعاد العرضي للملفات المهمة
  • ضع الأمان في الاعتبار: استبعد دائمًا الملفات التي تحتوي على معلومات حساسة
  • حافظ على التحديث: حدّث ملف .bobignore مع تطور مشروعك
ما رأيك في هذا الموضوع؟