هر فایلی در پروژه شما نباید با نسخه کنترل شود. دریابید که کدام نوع فایل را باید از مخزن منبع خود حذف کنید.
کنترل نسخه ابزاری حیاتی برای ردیابی تغییرات در پایگاه کد شماست، اما همیشه نمیخواهید همه فایلها را ردیابی کنید.
برای جلوگیری از بهم ریختگی و کاهش خطر توزیع اطلاعات حساس، می توانید از فایلی به نام .gitignore استفاده کنید. این فایل مشخص می کند که Git کدام فایل ها و دایرکتوری ها را نباید ایندکس کند.
تعیین اینکه کدام فایلها را در .gitignore قرار دهید میتواند چالشبرانگیز باشد، بهویژه اگر در توسعه تازه کار هستید. برای داشتن گردش کار Git هموارتر، ببینید کدام فایلها را باید به .gitignore خود اضافه کنید.
ایجاد یک فایل .gitignore
برای اینکه فایل .gitignore شما اثری داشته باشد، باید Git را در پروژه خود مقداردهی اولیه کنید.
با اجرای دستور زیر در ترمینال خود می توانید Git را مقداردهی اولیه کنید:
git init
این دستور یک مخزن Git جدید برای پروژه شما ایجاد می کند، در یک زیرشاخه مخفی “.git” که شامل تمام فایل ها و دایرکتوری هایی است که برای کنترل نسخه پروژه شما نیاز دارد.
برای اجرای این دستور باید Git را در سیستم خود نصب کرده باشید.
سپس با اجرای دستور زیر فایل .gitignore خود را ایجاد کنید:
touch .gitignore
اجرای دستور بالا یک فایل جدید به نام “.gitignore” در فهرست فعلی شما ایجاد می کند. می توانید با افزودن نام فایل یا مسیر فایل (اگر فایل در دایرکتوری متفاوتی از فایل .gitignore باشد) یک فایل را از Git حذف کنید.
Git نیازی به ردیابی هر فایل در پروژه شما ندارد و ردیابی برخی از فایل ها می تواند منجر به مشکلات پیش بینی نشده شود. اینها برخی از فایل هایی هستند که باید به .gitignore خود اضافه کنید.
1. فایل های پیکربندی
فایلهای پیکربندی تنظیمات و پارامترهای دیگری را ذخیره میکنند که برنامههای شما از آنها برای تعریف و سفارشی کردن رفتار خود استفاده میکنند. این فایلها اغلب رشتههای اتصال پایگاه داده، کلیدهای API و سایر اطلاعات حساس را ذخیره میکنند که نباید در مخزن Git خود قرار دهید.
اگر فایل های پیکربندی را در مخزن خود قرار دهید، هر کسی که بتواند به آن دسترسی داشته باشد می تواند محتویات آنها را مشاهده کند. این ممکن است شامل اطلاعات حساسی باشد که می تواند منجر به نقض امنیت و سایر مسائل شود.
برای حذف فایل های پیکربندی از مخزن Git خود، نام فایل ها یا نام پوشه های خاصی را به فایل .gitignore خود اضافه کنید.
برای مثال، می توانید خط زیر را به فایل .gitignore خود اضافه کنید تا فایل env. را نادیده بگیرید.
.env
2. مصنوعات بسازید
مصنوعات ساخت فایل های کامپایل شده یا تولید شده ای هستند که هنگام ساخت پروژه خود تولید می شوند. این فایلها معمولاً در فهرست «هدف» یا «build» قرار دارند.
مصنوعات ساخت میتواند شامل کلاسهای جاوا کامپایلشده، فایلهای JAR، فایلهای WAR، فایلهای باینری، بستههای توزیع، گزارشها، فایلهای گزارش و سایر مواردی باشد که در طول فرآیند ساخت تولید میشوند.
به طور کلی روش خوبی است که مصنوعات ساخت را از مخزن Git خود حذف کنید زیرا ممکن است بسیار بزرگ باشند. آنها همچنین ممکن است کمتر از فایل های منبع شما قابل حمل باشند و فقط مربوط به یک محیط خاص هستند. گنجاندن آنها در مخزن شما می تواند اندازه مخزن شما را متورم کند و کلون کردن و کار با آن را کندتر کند.
برای حذف مصنوعات ساخت از مخزن Git خود، دایرکتوری “target/” یا “build/” را به فایل .gitignore خود اضافه کنید.
مثلا:
# .gitignore
target/
build/
3. فایل های محیط توسعه یکپارچه
فایلهای محیط توسعه یکپارچه (IDE) فایلهای پیکربندی، فراداده پروژه و سایر فایلهایی هستند که هنگام ایجاد یا باز کردن یک پروژه توسط IDE شما تولید میشوند. این فایل ها مختص هر IDE هستند. IDE شما از این فایل ها برای پیکربندی تنظیمات پروژه استفاده می کند.
این فایل ها برای ساخت یا اجرای برنامه شما غیر ضروری هستند و اگر به یک مخزن Git مشترک متعهد شوند، اغلب می توانند مشکلاتی ایجاد کنند. به عنوان مثال، افراد مختلف در تیم شما ممکن است از IDE ها یا نسخه های متفاوتی استفاده کنند و انجام فایل های خاص IDE می تواند باعث تداخل ادغام شود و همکاری در پروژه را دشوار کند.
از آنجایی که این فایلها مختص IDE هستند، فایلهایی که باید در فایل .gitignore شما قرار دهید به IDE شما بستگی دارد. در اینجا توصیههای .gitignore GitHub برای برخی از IDEهای محبوب آورده شده است. می توانید IDE انتخابی خود را جستجو کنید و فایل های مشخص شده را به فایل .gitignore خود اضافه کنید.
4. وابستگی و فایل های بسته
فایلهای وابستگی و بسته فایلهایی هستند که حاوی اطلاعاتی درباره وابستگیها و بستههای مورد استفاده برنامه شما هستند. ابزارهای مختلف ساخت، مانند Node Package Manager (npm) این فایل ها را تولید می کنند.
به عنوان مثال، اگر از npm برای مدیریت وابستگی ها برای یک پروژه جاوا اسکریپت استفاده می کنید، یک پوشه “node_modules” در فهرست اصلی پروژه شما ایجاد می کند. فهرست شامل تمام وابستگی های نصب شده برای پروژه شما است.
این دایرکتوری می تواند بسیار بزرگ شود، به خصوص اگر پروژه شما وابستگی های زیادی داشته باشد یا برخی از وابستگی ها دارای اندازه فایل های بزرگ باشند. با حذف پوشه “node_modules” از مخزن Git خود، می توانید آن را تمیز نگه دارید و اندازه آن را کاهش دهید.
برای جلوگیری از افزودن دایرکتوری “node_modules” به مخزن Git خود، نام آن را به فایل .gitignore خود اضافه کنید:
#.gitignore
node_modules/
5. فایل های سیستم عامل
سیستم عامل شما و سایر ابزارهای سیستم ممکن است از طریق استفاده عادی فایل تولید کنند. اینها ممکن است شامل فایلهای گزارش، فایلهای موقت و فایلهای پیکربندی سیستم باشند. یک مثال فایل Thumbs.db در ویندوز و معادل macOS آن، فایل .DS_Store است.
به طور کلی روش خوبی است که فایل های سیستم عامل را از مخزن Git خود حذف کنید، زیرا آنها مختص محیط محلی شما هستند و می توانند بین رایانه ها و سیستم عامل های مختلف متفاوت باشند.
GitHub دستورالعملهای .gitignore را برای Windows، macOS و Linux توصیه کرده است.
اهمیت کنترل نسخه
استفاده از کنترل نسخه می تواند گردش کار شما را به میزان قابل توجهی بهبود بخشد و خطاها و درگیری هایی را که ممکن است هنگام کار بر روی یک پایگاه کد ایجاد شود، کاهش دهد. با کنترل نسخه، می توانید به راحتی تغییرات کد را ردیابی کنید، آنها را بررسی کنید و به طور یکپارچه با اعضای تیم همکاری کنید.
با این حال، همیشه باید فایل های خاصی مانند فایل های پیکربندی، فایل های IDE و فایل های سیستم عامل را حذف کنید. این باعث میشود که اندازه مخزن شما پایین بماند و اطمینان حاصل شود که اطلاعات حساس را درز نمیکنید.