المشكلة: يريد Git تتبّع كل ملفاتك، حتى غير المفيدة:
.tmp)node_modules/).env).DS_Store)الحل: .gitignore
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 # أنظف!أنماط مفيدة:
| النمط | يتجاهل |
|---|---|
*.log | كل ملفات .log |
temp/ | مجلد temp بالكامل |
.env* | كل الملفات التي تبدأ بـ .env |
!important.log | استثناء: الإبقاء على هذا الملف |
build/** | كل شيء داخل build تكرارياً |
قوالب جاهزة للاستخدام:
__pycache__/، *.pyc، .envnode_modules/، npm-debug.log*.class، target/# التحقق إن كان ملف متجاهَلاً
git check-ignore -v .env # إن كان متجاهَلاً: يعرض القاعدة
git check-ignore logs/app.log # إن كان متجاهَلاً: لا شيء يُعرض
# فرض إضافة ملف متجاهَل (إن لزم حقاً)
git add -f fichier-ignore.tmp
# عرض كل الملفات غير المتجاهَلة
git ls-filesالقاعدة الذهبية: أنشئ .gitignore في بداية المشروع!