
Git faylları yalnız .gitignore ilə deyil, üç səviyyədə iqnor edir
Bloq yazısı Git-də faylların iqnor edilməsinin üç səviyyəsini izah edir: repozitoriyaya yazılan .gitignore, yalnız bir repoya aid .git/info/exclude və bütün maşın üçün qlobal fayl.
Git ilə işləyənlərin çoxu faylları versiya nəzarətindən kənarda saxlamağın yalnız bir yolunu bilir: onları .gitignore faylına əlavə etmək. nelson.cloud bloqundakı yazı xatırladır ki, Git əslində üç fərqli səviyyədə iqnor qaydalarını dəstəkləyir və hər biri başqa problemi həll edir.
Layihə səviyyəsi: .gitignore
Tanış variant repozitoriyanın kökündəki .gitignore faylıdır. O, kodla birlikdə Git-ə yazılır, buna görə bütün töhfəçilər eyni qaydaları alır. Orada sadalanan fayllar Git əmrləri işləyərkən nəzərə alınmır — məhz buna görə build nəticələri, asılılıqlar və bütün komandanın iqnor etmək istədiyi redaktor faylları üçün düzgün yerdir.
Repozitoriya səviyyəsi: .git/info/exclude
İkinci fayl .git/info/exclude-dur. Hər repozitoriyanın .git qovluğunda yerləşir, amma ona edilən dəyişikliklər heç vaxt Git-ə yazılmır. Yeni repozitoriyada adətən yalnız bir neçə şərh sətri olur. Fayl bir repozitoriyaya aid şəxsi istisnalar üçün nəzərdə tutulub: məsələn, sizin üçün faydalı olan, amma layihədə yeri olmayan notes.txt. Bu cür qeydləri buraya əlavə etmək .gitignore-u səliqəli saxlayır və başqalarının paylaşmadığı seçimləri yayımlamır.
Maşın səviyyəsi: ~/.config/git/ignore
Üçüncü səviyyə qlobaldır. ~/.config/git/ignore faylı home qovluğunda yerləşir və kompüterdəki bütün repozitoriyalara aiddir; heç bir layihəyə mənsub deyil. Klassik istifadə əməliyyat sisteminin səs-küyüdür — macOS-da bu .DS_Store deməkdir. Yeri dəyişdirilə bilər: git config --global core.excludesFile ~/.gitignore_global əmri Git-i başqa fayla yönəldir, git config --global --unset core.excludesFile isə standart ayarı qaytarır.
Hansı faylın iqnor etdiyini tapmaq
Fayl Git üçün gözlənilmədən görünməz olduqda, git check-ignore -v əmri uyğun gələn qaydanı dəqiq göstərir. .DS_Store üçün nəticə məsuliyyət daşıyan səviyyədən asılı olaraq .gitignore:1:.DS_Store, .git/info/exclude:7:.DS_Store və ya ~/.config/git/ignore:2:.DS_Store ola bilər. Faylı heç nə iqnor etmirsə, əmr heç bir çıxış vermir.
SiTech — AI ilə gücləndirilmiş veb hazırlanması
Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.