.gitignore — نادیده گرفتن فایل‌ها

آموزش فایل .gitignore: قوانین الگونویسی، مثال‌های رایج و جلوگیری از کامیت شدن فایل‌های حساس و موقت.

مشکل: همه فایل‌ها نباید در گیت باشند!

در هر پروژه‌ای فایل‌هایی هست که نباید وارد گیت شوند:

راه‌حل: فایل .gitignore — لیستی از الگوهایی که گیت باید نادیده بگیرد.

ساخت .gitignore

در ریشه مخزن فایلی به نام .gitignore بسازید:

# فایل‌های محیطی (رمزها!)
.env
.env.local

# وابستگی‌ها
node_modules/

# خروجی build
dist/
build/

# فایل‌های موقت
*.log
.DS_Store
Thumbs.db

# IDE
.idea/
.vscode/
خط‌های با # کامنت هستند. از همان اول پروژه .gitignore بسازید — قبل از اولین کامیت!

قوانین الگونویسی

الگومعنیمثال
file.txtفایل مشخص در هر عمقیerror.log
/file.txtفقط در ریشه مخزن/config.php
folder/کل پوشه (هر جا باشد)node_modules/
*.logهر چیزی با این پسوندdebug.log
temp*شروع‌شونده با temptemp1.txt
**/logsپوشه logs در هر عمقa/b/logs
!file.txtاستثنا — نادیده نگیر!!important.log

مثال استثنا (negation)

# همه فایل‌های log را نادیده بگیر:
*.log
# به‌جز این یکی:
!important.log

نکته مهم: فایل کامیت‌شده دیگر ignore نمی‌شود!

اگر فایلی قبلاً کامیت شده، اضافه‌کردنش به .gitignore کافی نیست — گیت همچنان آن را دنبال می‌کند. باید اول از دنبال‌کردن حذفش کنید:
# حذف از دنبال‌کردن (فایل خودش می‌ماند!):
git rm --cached .env
git commit -m "حذف .env از گیت"

بررسی اینکه چه چیزی ignore می‌شود

# چرا این فایل ignore شده؟
git check-ignore -v node_modules/jquery.js
# .gitignore:3:node_modules/	node_modules/jquery.js

# لیست همه فایل‌های ignore شده:
git status --ignored

.gitignore آماده برای هر زبان/فریمورک

برای هر محبوب‌ترین زبان و ابزار، .gitignoreهای استاندارد وجود دارد:

الگوهای محلی (بدون اشتراک)

اگر می‌خواهید چیزی فقط برای خودتان ignore شود (بدون کامیت .gitignore):

# فایل مخصوص خودتان:
echo "notes.txt" >> .git/info/exclude

خلاصه

این مبحث بخشی از دوره آموزش کامل Git است.

ابزارهای مرتبط