
Git-ը ֆայլերը կարող է անտեսել երեք տեղում, ոչ միայն .gitignore-ում
Բլոգի գրառումը բացատրում է Git-ում ֆայլերի անտեսման երեք մակարդակները՝ ռեպոզիտորիայում պահվող .gitignore, տվյալ ռեպոյի .git/info/exclude և ամբողջ մեքենայի համար գործող գլոբալ ֆայլը։
Git-ի հետ աշխատողների մեծ մասը ֆայլերը տարբերակների կառավարումից դուրս պահելու միայն մեկ եղանակ գիտի՝ դրանք ավելացնել .gitignore-ում։ nelson.cloud բլոգի գրառումը հիշեցնում է, որ իրականում Git-ը աջակցում է անտեսման երեք մակարդակ, և դրանցից յուրաքանչյուրը լուծում է այլ խնդիր։
Նախագծի մակարդակ՝ .gitignore
Ծանոթ տարբերակը ռեպոզիտորիայի արմատում գտնվող .gitignore ֆայլն է։ Այն Git-ում պահվում է կոդի հետ միասին, ուստի բոլոր ներդրողները ստանում են նույն կանոնները։ Այնտեղ նշված ֆայլերը հաշվի չեն առնվում Git-ի հրամանների կատարման ժամանակ. հենց դրա համար է սա ճիշտ տեղը build-ի արդյունքների, կախվածությունների և խմբագրիչի ժամանակավոր ֆայլերի համար, որոնք ամբողջ թիմը ցանկանում է անտեսել։
Ռեպոզիտորիայի մակարդակ՝ .git/info/exclude
Երկրորդ ֆայլը .git/info/exclude-ն է։ Այն գտնվում է յուրաքանչյուր ռեպոզիտորիայի .git պանակում, սակայն դրա փոփոխությունները երբեք չեն գրանցվում Git-ում։ Նոր ռեպոզիտորիայում այն սովորաբար պարունակում է ընդամենը մի քանի մեկնաբանության տող։ Ֆայլը նախատեսված է մեկ ռեպոզիտորիայի անձնական բացառությունների համար, օրինակ՝ notes.txt, որը օգտակար է ձեզ, բայց տեղ չունի նախագծում։ Նման գրառումներն այստեղ ավելացնելը .gitignore-ը մաքուր է պահում և չի հրապարակում նախասիրություններ, որոնք ոչ ոք ուրիշ չի կիսում։
Մեքենայի մակարդակ՝ ~/.config/git/ignore
Երրորդ մակարդակը գլոբալ է։ ~/.config/git/ignore ֆայլը գտնվում է home պանակում և վերաբերում է համակարգչի բոլոր ռեպոզիտորիաներին. այն ոչ մի նախագծի չի պատկանում։ Դասական օգտագործումը օպերացիոն համակարգի աղմուկն է. macOS-ում դա .DS_Store-ն է։ Տեղադրությունը կարգավորելի է. git config --global core.excludesFile ~/.gitignore_global հրամանը Git-ին ուղղում է այլ ֆայլի, իսկ git config --global --unset core.excludesFile-ը վերականգնում է լռելյայն կարգավորումը։
Որ ֆայլն է անտեսում ուղին
Երբ ֆայլը անսպասելիորեն անտեսանելի է Git-ի համար, git check-ignore -v հրամանը ցույց է տալիս համապատասխանած կանոնը։ .DS_Store-ի դեպքում արդյունքը կարող է լինել .gitignore:1:.DS_Store, .git/info/exclude:7:.DS_Store կամ ~/.config/git/ignore:2:.DS_Store՝ կախված նրանից, թե որ մակարդակն է պատասխանատու։ Եթե ֆայլը ոչինչ չի անտեսում, հրամանը ոչինչ չի տպում։
SiTech — AI-ով հզորացված վեբ մշակում
Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։