.gitignore — نادیده گرفتن فایلها
آموزش فایل .gitignore: قوانین الگونویسی، مثالهای رایج و جلوگیری از کامیت شدن فایلهای حساس و موقت.
مشکل: همه فایلها نباید در گیت باشند!
در هر پروژهای فایلهایی هست که نباید وارد گیت شوند:
- 🔑 فایلهای حساس:
.env(رمز دیتابیس!)، کلیدها - 📦 پوشههای وابستگی:
node_modules(دهها مگابایت!) - 🔨 خروجی build:
dist/،build/ - 💾 فایلهای موقت سیستم:
.DS_Store،Thumbs.db - 📝 لاگها:
*.log
راهحل: فایل .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* | شروعشونده با temp | temp1.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های استاندارد وجود دارد:
- سایت معروف: gitignore.io — نام ابزارها را بدهید، فایل آماده بگیرید!
- مخزن گیتهاب: github/gitignore — مجموعه رسمی الگوها
- هنگام ساخت مخزن در گیتهاب، میتوانید .gitignore آماده انتخاب کنید
الگوهای محلی (بدون اشتراک)
اگر میخواهید چیزی فقط برای خودتان ignore شود (بدون کامیت .gitignore):
# فایل مخصوص خودتان:
echo "notes.txt" >> .git/info/exclude
خلاصه
- .gitignore در ریشه مخزن = لیست الگوهای نادیدهگرفتن
- الگوها:
*،folder/،!(استثنا)،** - فایل کامیتشده را با
git rm --cachedاز دنبالکردن خارج کنید - از gitignore.io الگوی آماده بگیرید
این مبحث بخشی از دوره آموزش کامل Git است.