Git Ignore

1 دقيقة

جدول المحتويات

  1. لماذا .gitignore؟
  2. إنشاء سريع
  3. قواعد شائعة
  4. اختبار وتحقق

1. لماذا .gitignore؟

المشكلة: يريد Git تتبّع كل ملفاتك، حتى غير المفيدة:

  • ملفات مؤقتة (.tmp)
  • مجلدات البناء (node_modules/)
  • ملفات حسّاسة (.env)
  • ذاكرة التخزين المؤقت للنظام (.DS_Store)

الحل: .gitignore

  • قائمة ملفات/مجلدات يجب تجاهلها
  • يتصرّف Git كأنها غير موجودة

العودة إلى جدول المحتويات

2. إنشاء سريع

bash
mkdir demo-gitignore && cd demo-gitignore
git init

# إنشاء ملفات اختبار
echo "print('app')" > app.py
echo "SECRET_KEY=123456" > .env
mkdir temp && echo "cache" > temp/cache.tmp
mkdir logs && echo "error logs" > logs/app.log

# بلا .gitignore، يريد Git تتبّع كل شيء
git status      # عرض كل الملفات

# إنشاء .gitignore
cat > .gitignore << EOF
# Fichiers sensibles
.env
*.secret

# Dossiers temporaires
temp/
logs/
build/

# Fichiers système
.DS_Store
*.tmp
EOF

# الآن يتجاهل Git هذه الملفات
git status      # أنظف!

العودة إلى جدول المحتويات

3. قواعد شائعة

أنماط مفيدة:

النمطيتجاهل
*.logكل ملفات .log
temp/مجلد temp بالكامل
.env*كل الملفات التي تبدأ بـ .env
!important.logاستثناء: الإبقاء على هذا الملف
build/**كل شيء داخل build تكرارياً

قوالب جاهزة للاستخدام:

  • Python: __pycache__/، *.pyc، .env
  • Node.js: node_modules/، npm-debug.log
  • Java: *.class، target/

العودة إلى جدول المحتويات

4. اختبار وتحقق

bash
# التحقق إن كان ملف متجاهَلاً
git check-ignore -v .env            # إن كان متجاهَلاً: يعرض القاعدة
git check-ignore logs/app.log       # إن كان متجاهَلاً: لا شيء يُعرض

# فرض إضافة ملف متجاهَل (إن لزم حقاً)
git add -f fichier-ignore.tmp

# عرض كل الملفات غير المتجاهَلة
git ls-files

القاعدة الذهبية: أنشئ .gitignore في بداية المشروع!

العودة إلى جدول المحتويات