کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

کار با 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 وجود دارد:


الگو
تعریف/تطبیق
مثال
خطوط خالی چشم پوشی میشوند.
#comment متنی
تمامی فایل های name، فولدر های name و فایل ها و فولدر های موجود در فولدر های name
/name.log
/name/file.txt
/lib/name.log
name/
وجود/ در انتها، نشان دهنده ی الگوی فولدر است که با تمامی فایل ها فولدر ها ، با هر نامی، تطبیق پیدا میکند.
/name/file.txt
/name/log/name/log
عدم تطبیق:
/name.log
name.file
تمامی فایل هایی که دارای name.file هستند.
/name.file
/lib/name.file
/name.file
وجود / در ابتدا، نشان دهنده ی فایل های موجود در root folder است.
/name.file
عدم تطبیق:
/lib/name.file
lib/name.file
این الگو نشان دهنده ی فایل های مرتبط با root است( حتی اگر با / آغاز نشده باشد).
/lib/name.file
عدم تطبیق:
name.file
/test/lib/name.file
**/lib/name.file
آغاز با ** پیش از / ، نشان دهنده ی هر فولدری است که، نه فقط در root، بلکه در repository وجود دارد.
/lib/name.file
test/lib/name.file
**/name
تمامی فایل های name و فایل ها و فولدر هایی که دارای فایل هایname هستند.
/name/log.file
/lib/name/log.file
/name/lib/log.file
/lib/**/name
تمامی فولدر های name و فایل ها و فولدر هایی که در هر فولدر name موجود در فولدر lib هستند.
/lib/name/log.file
/lib/test/name/log.file
/lib/test/ver1/name/log.file
عدم تطبیق:
/name/log.file
*.file
تمامی فایل هایی با پسوند.file
/name.file
/lib/name.file
*name/
تمامی فولدر هایی که به name ختم میشوند.
/lastname/log.file
/firstname/log.file
name?.file
? با یک کاراکتر تکی نامشخص تطبیق پیدا میکند.
/names.file
/name1.file
عدم تطبیق:
/names1.file
name[a-z].file
]دامنه[ با یک کاراکتر تکی، در دامنه مشخص شده ( در این مثال یک کاراکتر از a تا z) تطبیق پیدا میکند.
/names.file
/nameb.file
عدم تطبیق:
/name1.file
name[abc].file
]مجموعه[ با یک کاراکتر تکی در مجموعه مشخص شده( در این مثال یکی از کاراکتر های a، b و یا c ) تطبیق پیدا میکند.
/namea.file
/nameb.file
عدم تطبیق:
/names.file
name[!abc].file
] ! مجموعه[ با یک کاراکتر تکی، به جز کاراکتر های مشخص شده در مجموعه ( در این مثال a ، b و یا c) تطبیق پیدا میکند.
/names.file
/namex.file
عدم تطبیق:
/nameb.file
*.file
تمامی فایل هایی با پسوند .file
/name.file
/lib/name.file
name/
!name/secret.log
! نشان دهنده ی تفریق و یا مخالف است. این الگو با تمامی فایل ها و فولدر هایی که هر نامی به جز name/secret.log دارند، تطبیق پیدا میکند.
/name/file.txt
/name/log/name.log
عدم تطبیق:
name/secret.log
*.file
!name.file
! نشان دهنده ی تفریق و یا مخالف است. تمامی فایل های با پسوند .file به جز name.file
/log.file
/lastname.file
عدم تطبیق:
/name/file
*.file
!name/*.file
junk.*
ایجاد یک الگو جدید پس از یک تفریق، باعث چشم پوشی از فایل قبلی منفی شده میشود. تمامی فایل های با پسوند .file چشم پوشی میشوند غیر از فایل هایی که در فولدر name باشند، مگر اینکه نام آن junk باشد.
/log.file
/name/log.file
عدم تطبیق:
/name/junk.file

قوانین چشم پوشی از فایل های شخصی (Personal) و Local در Git Ignore


میتوانید بدون مشخص کردن فایل در .gitignore نیز ، آن را ignore کنید.


این نوع از ignore ها در فایل .git/info/exclude مشخص میشوند. این فایل نیز عملکردی شبیه به .gitignore دارد اما به فرد دیگری نمایش داده نمیشود.


1400/05/12 3939 408
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...