Git
Chapters ▾ 2nd Edition

3.4 Git’də Branch - Branching İş Axınları

Branching İş Axınları

İndi branch və aşağı birləşmə əsaslarını öyrəndiyimizə görə, onlarla nə edə bilərsən və ya etməlisən? Bu bölmədə, bu yüngül branch-ın mümkün olduğu bəzi ümumi iş axınlarını əhatə edəcəyik, buna görə onları öz inkişaf dövrünüzə daxil etmək istəməyinizə qərar verə bilərsiniz.

Uzun Müddət İşləyən Branch-lar

Git sadə üç tərəfli birləşmə istifadə etdiyi üçün uzun bir müddət ərzində bir branch-dan digərinə bir neçə dəfə birləşmək ümumiyyətlə asandır. Bu, həmişə açıq olan və inkişaf dövrünüzün müxtəlif mərhələləri üçün istifadə etdiyiniz bir neçə branch-a sahib ola biləcəksiniz deməkdir; müntəzəm olaraq bəzilərindən digərlərinə birləşə bilərsiniz.

Bir çox Git developerində bu yanaşmanı əhatə edən bir iş axını var, məsələn, yalnız master branch-da tamamilə sabit bir koda sahib olmaq - bəlkə də yalnız buraxılmış və ya buraxılacaq kod. Onların sabitlik yoxlamaq üçün işlədikləri və ya sabitliyi test etmək üçün develop və ya next adlı başqa bir paralel branch-ı var - bu mütləq həmişə sabit olmur, lakin sabit vəziyyətə gəldikdə onu master-ə birləşdirmək olar. Hazır olduqları zaman mövzu branch-ları (qısa müddətli branch-lar, əvvəlki iss53 branch-ı kimi) hazırlamaq üçün istifadə etdikləri, bütün testləri keçdiklərini və səhvləri tanımadıqlarını təmin etmək üçün istifadə olunur.

Əslində, etdiyiniz tapşırığın cərgəsinə doğru hərəkət edən göstəricilərdən bəhs edirik. Sabit branch-lar törətmə tarixinizdəki xəttdən daha aşağı, bleeding-edge branch-lar isə tarixdən daha uzaqdır.

Proqressiv-sabitlik branch-nın xətti görünüşü
Figure 26. Proqressiv-sabitlik branch-nın xətti görünüşü

Tamamilə sınaqdan keçirildikdə dəstləri məzunları daha stabil bir silosa verdikləri iş silosları kimi düşünmək ümumiyyətlə daha asandır.

Proqressiv-sabitlik branch-a bir ``silo'' görünüşü
Figure 27. Proqressiv-sabitlik branch-a bir “silo” görünüşü

Bunu bir neçə səviyyəli sabitlik üçün davam etdirə bilərsiniz. Bəzi daha böyük layihələrdə, next və ya master branch-a girməyə hazır ola bilməyən branch-ı birləşdirən proposed və ya pu (təklif olunan yeniləmələr) branch-ı vardır. İdeya budur ki, branch-larınızın sabitliyin müxtəlif səviyyələrindədir; daha sabit bir səviyyəyə çatdıqda, yuxarıdakı branch-a birləşdirilirlər. Yenə də çoxsaylı uzun branch-lara sahib olmaq lazım deyil, ancaq çox böyük və ya mürəkkəb layihələrlə məşğul olduğunuzda çox vaxt faydalıdır.

Mövzu Branch-ları

Mövzu branch-ları istənilən ölçüdə layihələrdə faydalıdır. Bir mövzu branch-ı müəyyən bir xüsusiyyət və ya əlaqəli bir iş üçün yaratdığınız və istifadə etdiyiniz qısa ömürlü bir branch-dır. Bu, əvvəllər bir VNS ilə heç görmədiyiniz bir şeydir, çünki branch yaratmaq və birləşdirmək ümumiyyətlə çox bahadır. Ancaq Git-də gündə bir neçə dəfə branch yaratmaq, üzərində işləmək, birləşdirmək və silmək çox yaygındır.

Bunu son hissədə yaratdığınız iss53hotfix branch-ları gördünüz. Onlara bir neçə commit-lər verdiniz və əsas branch-ınıza birləşdirildikdən sonra birbaşa sildisiniz. Bu üsul sizə tez və tamamilə kontekstə keçməyə imkan verir - işiniz siloslara ayrıldığı üçün bu şöbədəki bütün dəyişikliklərin bu mövzu ilə əlaqəli olması, kodun baxılması zamanı nələrin baş verdiyini və bu kimi şeyləri görmək asandır. Dəyişiklikləri dəqiqələr, günlər və ya aylar ərzində saxlaya və hazır olduqları müddətdə, yaradılan və ya işlədikləri qaydadan asılı olmayaraq birləşdirə bilərsiniz.

Bəzi işlərin nümunəsini nəzərdən keçirin (master-da),bir məsələ üçün branching (iss91),eyni işin başqa bir yolunu sınamaq üçün ikinci branch üçün bir az üzərində işləyirik (iss91v2),sonra master branch-na qayıdıb bir müddət orada işlədib, sonra yaxşı bir fikir olduğuna əmin olmadığınız bir işi görmək üçün oraya branch edin (dumbidea branch-ı).

Sizin commit tarixiniz belə görünəcək:

Bir neçə mövzulu branch-lar
Figure 28. Bir neçə mövzulu branch-lar

İndi deyək ki, məsələnizin ən yaxşı ikinci həll yolu kimi qərar verdiniz (iss91v2);və iş yoldaşlarınıza dumbidea branch-nı göstərdiniz və genius olduğu ortaya çıxır. Orijinal iss91 filialını ata bilərsiniz (C5C6 commit-lərini itirir) və digər ikisində birləşdirə bilərsiniz.

`dumbidea` və `iss91v2`-ı birləşdikdən sonra tarix
Figure 29. dumbideaiss91v2-ı birləşdikdən sonra tarix

Git layihəniz üçün mümkün olan müxtəlif iş axını barədə Paylanmış Git-də daha ətraflı məlumat verəcəyik, buna görə növbəti layihənizin hansı branching sxemindən istifadə edəcəyinə qərar verməzdən əvvəl əmin olun.

Bütün bunları etdiyiniz zaman bu branch-ların tamamilə local olduğunu xatırlamaq vacibdir. Branching və birləşmə halında hər şey yalnız Git depolarınızda edilir - serverlə heç bir əlaqə yoxdur.