مشخصات مقاله
-
408
-
0.0
-
3939
-
0
-
0
کار با gitignore
Git Ignore و .gitignore
Git Ignore
در زمان اشتراک گذاری کد تان با بقیه، ممکن است بخواهید برخی فایل ها و یا بخشی از کدتان به اشتراک گذاشته نشود.
مثلا :
- فایل های log
- فایل های موقتی
- فایل های پنهان
- فایل های شخصی
- غیره...
با استفاده از یک فایل .gitignore میتوانید به Git اعلام کنید که از بخشی از کد شما چشم پوشی کند.
Git فایل ها و فولدر های مشخص شده در .gitignore را پیگیری نمیکند اما خود فایل .gitignire پیگیری میشود.
ساخت .gitignore
برای ساخت یک فایل .gitignore ، به root در local Git خود رفته و فایل زیر را ایجاد کنید:
touch .gitignore
حالا با استفاده از یک ویرایشگر، فایل را باز کنید.
ما تنها دو قانون ساده اضافه میکنیم:
- ازهر فایلی با پسوند .log چشم پوشی کن
- از فایل های موجود در دایرکتوری temp چشم پوشی کن
# ignore ALL .log files
*.log
# ignore ALL files in ANY directory named temp
temp/
حالا فایل های موجود در فولدر temp و فایل های با پسوند .log ، ignore ( چشم پوشی) خواهند شد.
در این مورد ما تنها از یک .gitignore استفاده میکنیم که تمام repository را شامل میشود.
میتوان در فایل های subdirectory نیز، فایل .gitignore ایجاد کرد که تنها فایل و فولدر های موجود در آن دایرکتوری را شامل میشود.
قوانین .gitignore
قوانین کلی برای تطبیق فایل های موجود در .gitignore وجود دارد:
/name/file.txt /lib/name.log
/name/log/name/log عدم تطبیق:
/name.log
/lib/name.file
عدم تطبیق: /lib/name.file
عدم تطبیق: name.file
/test/lib/name.file
test/lib/name.file
/lib/name/log.file /name/lib/log.file
/lib/test/name/log.file /lib/test/ver1/name/log.file
عدم تطبیق: /name/log.file
/lib/name.file
/firstname/log.file
/name1.file عدم تطبیق:
/names1.file
/nameb.file عدم تطبیق:
/name1.file
/nameb.file عدم تطبیق:
/names.file
/namex.file عدم تطبیق:
/nameb.file
/lib/name.file
!name/secret.log
/name/log/name.log عدم تطبیق:
name/secret.log
!name.file
/lastname.file عدم تطبیق:
/name/file
!name/*.file junk.*
/name/log.file عدم تطبیق:
/name/junk.file
قوانین چشم پوشی از فایل های شخصی (Personal) و Local در Git Ignore
میتوانید بدون مشخص کردن فایل در .gitignore نیز ، آن را ignore کنید.
این نوع از ignore ها در فایل .git/info/exclude مشخص میشوند. این فایل نیز عملکردی شبیه به .gitignore دارد اما به فرد دیگری نمایش داده نمیشود.