paylaşılan mətn idarəetmə sisteminin buraxılışı . Git, ən populyar, etibarlı və yüksək performanslı versiya idarəetmə sistemlərindən biridir. O, filiallar arasında dallanma və birləşmə əsasında qeyri-xətti inkişaf üçün çevik vasitələr təqdim edir. Tarixə qarşı bütövlük və geri dəyişikliklərə qarşı dayanıqlılıq təmin etmək üçün, hər bir commitdə bütün əvvəlki tarixlərin qeyri-rəsmi hashinqi istifadə olunur. Həmçinin, ayrı-ayrı tag və commitlərin rəqəmsal imzaları ilə təsdiqlənməsi mümkündür.
Keçən buraxılışla müqayisədə yeni versiyada 78 inkişaf etdirici tərəfindən hazırlanmış 544 dəyişiklik qəbul edilib, onların 21-i ilk dəfə inkişafda iştirak edir. :
- Konfiqurasiya makrolarının dəstəyi əlavə edilib, bunun sayəsində müxtəlif konfiqurasiya dəstləri arasında surətlə keçid edə bilərsiniz, onlarla bağlı konkret opsiyalara girmədən. Makrolardan istifadə edərək, müəyyən funksionallığın aktivləşdirilməsi üçün dəyişikləri xatırlamağa ehtiyac yoxdur. Məsələn, böyük bir repozitoriyaya girişin yavaşlaması halında yeni indeksleme mexanizminə keçmək, yol prefixlərinin sıxılmasını aktivləşdirmək və qeydə alınmamış fayllar üçün keşdən istifadə etmək üçün index.version parametrini 4-ə qoyub core.untrackedCache-i aktivləşdirmək lazım ola bilər. Makrolar, uyğun həllini sənəddən axtarmaq üçün vaxt sərf etmədən optimallaşdırmaları olan konfiqurasiyaları birbaşa aktivləşdirməyə imkan verir.
git config feature.manyFiles true
- Obyektlərin commit-graph formasında saxlanılması standart olaraq aktivdir, burada indeksləşdirmək üçün obyektlərin həşləri ilə digər obyektlərə bağlantılar olan xətti siyahı deyil, qraf strukturu istifadə olunur. Əvvəllər müəyyən düzəlişin olduğu buraxılışları müəyyən etmək üçün hər bir obyekti diskdən yükləmək lazım idisə, qraf formasında saxlananda bütün zəruri bağlantıları dərhal müəyyən etmək mümkündür. Linux və Git nüvələrində commit-lərin qraf formasında saxlanmasına keçid, budaqlarla işləmə əməliyyatlarının effektivliyini demək olar ki, iki dəfə artırmağa imkan verdi. Git 2.24-ə yüksəldikdən sonra bu yeni saxlanma metodunu aktivləşdirmək üçün "git gc" əmrini icra etmək lazımdır.
commit-graph ilə bağlı dəyişikliklər arasında, commit-graph komandaları üçün (
- İşğal tarixini yeniləmək üçün bir komanda əlavə edildi — "". Bu, "" komandasının daha sadə alternatividir və repozitoriya tarixini dəyişdirmək üçün (məsələn, repozitoriyadan bir faylı silmək və ya müəyyən bir kataloqun dəyişiklik tarixini çəkmək) əməliyyatların yerinə yetirilməsini təmin edir. Effektivliyi artırmaq üçün, "git filter-repo" da əməliyyatlar, tarixin davamlı axın formatında icra edilir.
Tarixin filtrasyonu "-path-{glob,regex}" seçimi vasitəsilə həyata keçirilir, bu da sadə şablonlar və ya müntəzəm ifadələr tətbiq etməyə imkan tanıyır. Həmçinin, 'axtarış və əvəz etmə' əməliyyatı və müəyyən bir ölçüdən yuxarı olan ikili obyektlərin təmizlənməsi üçün seçimlər mövcuddur. Hər yenidən yazılmış komit yeni SHA-1 hash identifikatoru ilə təmin edilir və dəyişdirilmiş komitə aid olan bütün bağlantılar yeni identifikatora uyğun olaraq yenilənir.
Repozitoriya haqqında statistik məlumatların xülasəsini (obyektlərin sayını, tipləri, ən böyük fayllar və kataloqlar, diskdə daha çox yer tutan uzantılar və s.) göstərmək üçün "-analyze" seçim imkanı vardır. Funksionallığı genişləndirmək üçün Python dilində tətikçilər quraşdırmaq imkanı da vardır ki, bura, yeni alt komandalar yaratmaqla yanaşı, müxtəlif hadisələri (məsələn, yeni fayl tipləri) idarə etmək mümkündür.
- «—end-of-options» seçimini əlavə edib, bu da «-» simvolu ilə başlayan link adlarından ayrılmağa imkan verir və onları seçimlər kimi qəbul etməyə mane olur («git log —end-of-options —super-dangerous-option»). Belə adlar gündəlikdə «git log 'refs/heads/—super-dangerous-option'» şəklində qaçırılabilsə də, skriptlərdə adlar sahəsinin müəyyənləşdirilməsi ilə bağlı problemlər yarana bilər. Bu halda, geniş yayılmış ayrıcı » — » istifadə oluna bilmir, çünki artıq link adlarını fayllardan ayırmaq üçün istifadə olunur (məsələn, «git log —end-of-options —super-dangerous-option ^master — path/to/file»);
- «git rebase —rebase-merges»-ə «—strategy» və «—strategy-option» seçimləri əlavə edilib ;
- Yeni bir «.git/hooks/pre-merge-commit» işləyicisi əlavə edilib, bu, birləşmə tamamlandıqdan, lakin nəticə komitini yazmazdan əvvəl işə düşür;
- Komanda avtomatik tamamlanma mexanizminə xüsusi komanda konfiqurasiya dəyişənlərinin tamamlanmasını dəstəkləyən imkan əlavə edilib.
Məsələn, «git -c core.autocrlf=false add path/to/my/file» yazmaq lazım gəldikdə, lakin «core.autocrlf» dəyişəni haqqında dəqiq adı xatırlamaya bilmirsinizsə, Tab düyməsini basaraq tövsiyə ala bilərsiniz.
Bundan əlavə, Git inkişaf etdiriciləri müxtəlif problemlərin həllini müəyyən edən layihə iştirakçılarının davranış kodeksini hazırlayıb. Bu sənəd ««ın tövsiyələri əsasında hazırlanıb və bir çox açıq layihələrdə, o cümlədən Linux nüvəsində, Eclipse, Freedesktop, GitLab, Ruby və Kubernetes-də həyata keçirilir. Sənəd iştirakçılar üçün mənşəyindən asılı olmayaraq eyni imkanları müəyyən edir. İcma dostyana ünsiyyəti, başqalarının problemlərinə anlayışla yanaşmağı, konstruktiv tənqidi qəbul etməyi, bütün icma üçün ən yaxşı qərarları qəbul etməyi təşviq edir. Trolluq, aşağılayıcı üslub, alçaltma cəhdləri, narahatlıq, şəxsi məxfiliyin pozulması, şəxsi məlumatların ifşası və professional ünsiyyət zamanı uyğun sayılmayan digər davranışlar qadağandır.
Mənbə: opennet.ru
