آموزش گیت (Git): بخش هشتم
تمیز کردن در گیت (git clean)
برای پاک کردن فایلهایی از فولدر پروژه که توسط گیت دنبال نمیشوند (داخل staging index و repository نیستند) از git clean و یکی از گزینههای -i، -n یا -f استفاده میشود.
نادیده گرفتن فایلها در گیت (gitignore.)
ممکن است لازم باشد که فایلهای خاصی توسط گیت دنبال نشوند.
به عنوان مثال هنگام برنامهنویسی دائما با compile و build فایلهای .dllو .exeساخته شده دچار تغییر میشوند اما دنبال کردن تغییرات آنان مطلوب ما نیست.
دنبال کردن تغییرات فایلهای مربوط به IDE خاصی که برای برنامهنویسی استفاده میکنیم، آنچنان مطلوب ما نیست. به عنوان مثال نیازی به دنبال کردن فایلهای XML که توسط NetBeans تولید میشود، نیست.
برای این کار باید با استفاده از text editorسیستم عامل خود یک فایل .gitignore تولید کنید و به staging indexاضافه و سپس کامیت کنید. بهتر هست فایل .gitignore را با استفاده از nano در درون محیط Git Bash درست کنید.


استثا: تغییرات سایر فایلها را میتوان بصورت مستقیم با کد
1git commit -am <message>
به مخزن اضافه کرد. اما در مورد فایل .gitignore بایستی با ایجاد هر تغییر ابتدا از کد
1git add .gitignore
و سپس از کد
1git commit -m <message>
استفاده کرد.
برای نوشتن محتوای فایل .gitignore میتوان از سادهترین عبارات با قاعده استفاده کرد. به عنوان مثال نوشتن * در این فایل بدین معنی است که گیت تمام فایلهایی را که با اعداد 0 تا 9، حروف a، e، i، o و u و یا کاراکتر ?شروع میشوند را نادیده بگیرد.
کاراکتر ! در فایل .gitignore عملگر نقیض میباشد.

برای گذاشتن کامنت داخل فایل .gitignoreاز # استفاده میشود. خطوط خالی فایل .gitignore نادیده گرفته میشوند.
تولید فایل .gitignore در گیت
به آدرس زیر مراجعه کنید:
1https://help.github.com/en/github/using-git/ignoring-files
در قسمت Further Reading به دو منبع مهم فایلهای .gitignoreکه میتوانید جهت ساخت فایلهایی از این نوع، بدان مراجعه کنید، اشاره شده است.

با کلیک روی لینک اول به مخزن gitignore در گیتهاب راهنمایی میشویم. از لیست موجود میتوانید قوانین (rule) مناسب برای پروژهی خود را پیدا کنید.
به عنوان مثال اگر پروژه خود را با C++ مینویسید، میتوانید محتویات فایل gitignore/C++.gitignore را به فایل .gitignore در پوشه پروژه خود اضافه کنید.
همچنین محتویات مناسب برای فایل .gitignore را میتوان توسط وبسایت https://www.gitignore.io نیز تولید کرد. کافی است نام IDE و یا زبان برنامه نویسی مورد استفاده را وارد کرده و آیکون create را بزنید تا فایل مدنظر تولید شود و محتویات آن را در فایل .gitignore کپی کنید.

نادیده گرفتن عمومی در گیت (Global .gitignore)
فرض کنید که چند همکار روی یک پروژه مشترک کار میکنید. یکی از همکاران در حال کار با سیستم عامل Mac، دیگری در حال کار با سیتم عامل لینوکس و سومی در حال کار با سیستم عامل ویندوز است. هرکدام از این افراد بنا به سیستم عامل مورد استفاده خود، فایلهای خاصی را ignore میکنند اما واضح است که نام این فایلها را نمیتوان در .gitignore پروژه نوشت. چون در این صورت با هر بار pull، این فایل .gitignore هم در فولدر پروژه سیستم دیگران (که سیستم عامل متفاوتی دارند) دانلود خواهد شد. در این حالت باید فایلی به نام .gitignore_globalدرست کرده و در پوشه کاربری (user directory) ذخیره کنیم.
سپس توسط کد زیر فایل .gitignore_global را به گیت نصب شده روی سیستم خود (اگر سیتم عامل unix-basedاست) معرفی کنید.
1$ git config --global core.excludesfile ~/.gitignore_global
اگر سیستم عامل شما ویندوز است کد بالا به صورت زیر خواهد بود.
1$ git config --global core.excludesfile C:\Users\<username>\.gitignore_global
که البته چنانچه با git bash (و نه command lineویندوز) کار کنید، تفاوتی بین کد مربوطه در سیستم عامل ویندوز و سیستم عاملهای unix-based نخواهد بود.
چنانچه در ویندوز برنامهنویسی میکنید، میتوانید محتویات فایل gitignore/Global/Windows.gitignore را به فایل .gitignore_global در پوشهی کاربری اضافه کنید و یا اینکه با نوشتن windows در وبسایت https://www.gitignore.io محتویات مناسب برای فایل .gitignore_global را تولید کنید.




حال که داخل پوشه کاربری هستید، برای دیدن تنظیمات گیت در سطح global از کد زیر استفاده کنید.

نادیده گرفتن فایل از قبل دنبال شده در گیت
فرض کنید فایلی را کامیت کرده و به repositoryاضافه نمودهایم. به عنوان مثال من فایل temp.txt را اضافه و ویرایش کرده و دوکامیت انجام دادهام.

حال میخواهم در عین اینکه فایل temp.txt در repositoryو در working directory باقی میماند، تغییرات بعدی آن دنبال نشود. بدین منظور ابتدا temp.txt را به .gitignore اضافه میکنیم و تغییرات انجام داده در .gitignore را کامیت میکنیم.


سپس از کد زیر استفاده میکنیم.

استفاده از cached– باعث میشود که فایل از repository حذف نشود اما تغییرات آن دیگر دنبال نشود.
دنبال کردن پوشه خالی در گیت
گیت پوشههای خالی را دنبال نمیکند زیرا در واقع گیت برای دنبال کردن تغییرات فایل طراحی شده است. برای حل این مشکل یک فایل خالی از نوع .gitkeep در داخل پوشه مذکور میسازیم.
این متن آموزشی با توجه به قسمتهای 37، 38، 39، 40، 41 و 42 ویدیوهای موجود در وبسایت پارس کلیک نوشته شده است.