Budaqlar layihədə bir neçə iş istiqamətini bir-birinə mane olmadan paralel aparmağa imkan verir. Bu məqalədə budağın nə olduğuna və nəyə yaradığına baxacaq, onları yaratmağı, aralarında keçid etməyi, dəyişiklikləri birləşdirməyi və IDE alətləri ilə merge konfliktlərini rahat həll etməyi öyrənəcəksiniz. Bu əsasları bilmək Claude Code-un repozitoriyanızla ayrıca budaqda işləyərkən nə etdiyini anlamağa kömək edir.
Nümunələr və interfeys görüntüləri JetBrains IDE-sinə aiddir; əməliyyatların adları və yeri sizin versiyanızda fərqli ola bilər. Məşqlər üçün ayrıca təlim repozitoriyasından istifadə edin. İş layihəsində onun budaqlar, dəyişikliklərin qeydə alınması və göndərilməsi ilə bağlı qaydalarına əməl edin.
Budaqlar nədir və nəyə lazımdır
Budaq ayrıca commit xəttinə ad verir. Budaq yaratmaq layihə qovluğunu köçürmür və commit edilməmiş faylları saxlamır. Adi iş qovluğunda Git budaq dəyişdiriləndə faylları seçilmiş budağa uyğun yeniləyir; tamamlanmamış dəyişikliklər sizinlə birlikdə keçə və ya keçidə mane ola bilər.
Əsas main budağından ayrıca inkişaf xətti üçün yeni feature/new-idea budağı ayrılır. İş bitəndən sonra dəyişikliklər yenidən main budağına birləşdirilir.
Təsəvvür edin, layihənizdə ciddi dəyişiklik etmək və ya riskli bir sınaq keçirmək istəyirsiniz. Git olmasaydı, nə edərdiniz? Yəqin ki, bütün layihəni yeni qovluğa köçürüb orada işləyərdiniz. Nəticə xoşunuza gəlsəydi, onu əsas qovluğa daşıyardınız. Bəyənməsəydiniz, sadəcə surəti silərdiniz.
Surət bənzətməsi işin ayrı variantlarını anlamağa kömək edir, amma texniki baxımdan budaq commit-ə işarə edən göstəricidir. Kitab nümunəsinə baxaq:
- əlinizdə hazır əlyazma var (bu, əsas
mainbudağınızdır); - başqa sonluq yazmaq istəyirsiniz (məsələn,
feature/new-ideaadlı yeni budaq yaradırsınız); - əlyazmanın əsas mətninə toxunmadan yeni sonluğu yazırsınız (yeni budaqda işləyirsiniz);
- yeni sonluq daha yaxşı alınarsa, köhnəsini onunla əvəz edirsiniz (budaqları
mergeilə birləşdirirsiniz); - lazımsız sonluğu olan köhnə qaralamanı silmək olar (budağı silirsiniz).
Əvvəlcə Claude Code-dan budağı və mövcud dəyişiklikləri göstərməsini istəyin. Ayrıca budaq yalnız layihənin qaydalarına uyğundursa yaradılır. Saxlanmış commit-lər geri dönmək üçün nöqtə verir; budaq adını silmək öz-özlüyündə fayllardakı dəyişiklikləri ləğv etmir və əvvəlki vəziyyəti bərpa etmir.
Yeni budaq yaratmaq və orada işləmək
Addım 1. Budaqları idarəetmə menyusunu açın.
Əsas alətlər panelində, layihənin adının yanında cari budağın adını göstərən vidcet var (standart olaraq - main). Ona klikləyin və + New Branch seçin.

Addım 2. Yeni budağa ad verin.
Yaxşı yanaşma budağa həll etdiyiniz işə uyğun ad verməkdir. Məsələn, feature/add-usage-examples.

Yaratma zamanı Checkout branch seçilərsə, IDE yeni budağa keçəcək. Faylları redaktə etməzdən əvvəl vidcetdə budağın adını yoxlayın.
Addım 3. Dəyişikliklər edin və commit yaradın.
README.md faylına istifadə nümunələri bölməsini əlavə edin. Dəyişikliklərə baxın və adi qaydada commit yaradın: yeni budağın tarixçəsində saxlanmış snapshot görünəcək.

Claude Code commit təklif edəndə məhz bunu edir: mövcud dəyişiklikləri sonradan qayıda biləcəyiniz nöqtə kimi qeydə alır. Razılaşmazdan əvvəl commit mesajını oxuyun: orada nəyin dəyişdiyi yazılıb və mesajı asanlıqla düzəltmək olar.
Budaqlar arasında keçid
İstifadə nümunələri ilə bağlı dəyişiklikləriniz artıq feature/add-usage-examples budağında etibarlı şəkildə saxlanıb. Gəlin əsas main budağına qayıdıb orada nə olduğuna baxaq.
Addım 1. Sol yuxarı küncdə cari budağın adını göstərən vidcetə yenidən klikləyin.
Addım 2. Local və ya Recent siyahısından main budağını seçin, sonra açılan alt menyuda Checkout düyməsinə klikləyin.

Addım 3. Nəticəni yoxlayın.
Keçid edən kimi README.md faylını açın. İstifadə nümunələri bölməsinin orada olmadığını görəcəksiniz - o, başqa budaqda qalıb. Beləcə, main budağındakı sabit versiyaya toxunmadan yeni funksionallıq üzərində işləyə bilərsiniz.

Budaqların birləşdirilməsi
merge seçilmiş budağın tarixçəsini cari budaqla birləşdirir. Ayrıldıqdan sonra main irəliləməyibsə, fast-forward baş verə bilər: main yeni commit yaratmadan C3-ə keçir. Xətlər ayrılıbsa, adi birləşdirmə iki valideyni olan commit yaradır.
Göstərilən xətti halda main C3-ə keçə bilər. feature/add-usage-examples budağı da hələ C3-ə işarə edir; birləşdirmə üçün onun adını silmək lazım deyil.
Beləliklə, feature/add-usage-examples budağında işinizi bitirmisiniz və dəyişiklikləri əsas layihəyə əlavə etmək istəyirsiniz.
Addım 1. Hədəf budağa keçin.
Dəyişiklikləri HARA əlavə etmək istədiyiniz budaqda olduğunuzdan əmin olun. Bizim nümunədə bu, main budağıdır.
Addım 2. Budaqları birləşdirin.
Budaqları idarəetmə vidcetinə yenidən klikləyin. Siyahıdan dəyişiklikləri HARADAN götürmək istədiyiniz budağı seçin (feature/add-usage-examples) və alt menyuda Merge 'feature/add-usage-examples' into 'main' seçin.

Addım 3. Nəticəni yoxlayın.
İndi main budağındakı README.md faylında yeni nümunələr bölməniz görünür. İşinizi layihənin əsas versiyası ilə uğurla birləşdirdiniz.

Birləşdirmə konfliktləri
Konflikt Git-in dəyişiklikləri avtomatik birləşdirə bilmədiyini bildirir. Çox vaxt eyni sətirlərdə fərqli dəyişikliklər olur; bəzən də fayl bir budaqda silinir, digərində isə dəyişdirilir. Hansı variantın seçiləcəyi tələb olunan nəticədən asılıdır.
Elə burada IDE-nizin (CLion və ya IntelliJ IDEA) daxili alətləri işə yarayır. Konfliktləri terminalda həll etmək heç də xoş deyil, amma üçtərəfli birləşdirmə (3-way merge) aləti prosesi aydın və sadə edir.
C1 ortaq əcdadından sonra hər iki budağa yeni commit-lər əlavə olunub. Tarixçənin ayrılması öz-özlüyündə konflikt yaranacağı demək deyil: konflikt Git dəyişiklikləri avtomatik uzlaşdıra bilməyəndə yaranır. Aşağıdakı məşqdə fərqli mətnlər eyni başlanğıc sətrini əvəz edir.
Gəlin konflikt yaradaq:
mainbudağında olduğunuza və Commit pəncərəsində commit edilməmiş dəyişikliklərin, eləcə də yeni faylların olmadığına əmin olun;- yeni
feature/new-titlebudağı yaradın, amma hələlik ona keçməyin. Checkout branch işarəsinin götürüldüyünü yoxlayın; - indi
mainbudağındaREADME.mdfaylının ilk sətrini "Möhtəşəm Layihəm" ilə əvəz edin vəcommityaradın; feature/new-titlebudağına keçin. BuradaREADME.mdfaylının ilk sətrinin əvvəlki kimi qaldığını görəcəksiniz - bu, budaq yaranan andakı fayl vəziyyətidir. Həmin sətri "Əla Layihəm" ilə əvəz edin vəcommityaradın;mainbudağına qayıdın vəfeature/new-titlebudağını ona birləşdirin.
İndi Git hər iki tarixçənin eyni yerdə dəyişdiyini görəcək. Konflikti həll etmək üçün pəncərə açacaq (Merge Conflicts).

Konflikt həlli alətini açmaq üçün Merge düyməsinə klikləyin. Burada bunları görəcəksiniz:
- solda (Your changes) - cari budağınızdakı fayl versiyası (dəyişiklikləri birləşdirdiyiniz
mainbudağı); - sağda (Changes from branch) - birləşdirdiyiniz budaqdakı fayl versiyası;
- ortada (Result) - özünüz yığmalı olduğunuz yekun fayl versiyası.

Bu və ya digər variantı bütövlükdə qəbul etmək üçün >> və ya << oxlarına klikləyə bilərsiniz (ləğv etmək üçün xaç işarələrindən istifadə edin). Mərkəzi paneldə düzgün mətni özünüz də yaza bilərsiniz.
Mərkəzi paneldə nəticəni yoxlayın və Apply və ya uyğun tamamlama düyməsinə klikləyin. Sonra Git vəziyyətinə baxın: birləşdirmə hələ qeydə alınmayıbsa, IDE vasitəsilə commit yaradın. Konflikt sətirlərini həll etmək və merge əməliyyatını tamamlamaq ayrı addımlardır. Alınan kodun davranışını yoxlayın.
Claude Code ilə işləyərkən konflikt yaranarsa, bu, nasazlıq deyil: Claude dayana və sizdən kömək istəyə, yaxud dəyişiklikləri necə uzlaşdırmağı təklif edə bilər. Onu adi konfliktlərdə olduğu kimi IDE-nin üçtərəfli aləti ilə həll edin.
Niyə bəzən konflikt yaranmır
Məşqdə konflikt yoxdursa, ikinci budağın hansı commit-dən yaradıldığını və hər iki tərəfin eyni sətri həqiqətən fərqli şəkildə əvəz etdiyini yoxlayın. Git uyğun dəyişiklikləri ayrılmış budaqlarda da avtomatik birləşdirə bilir. Başqa ehtimal isə fast-forward mümkün olan xətti tarixçədir:
Nümunə:
mainbudağında hər hansı bir commit var (məsələn, C1);mainbudağında "Möhtəşəm Layihəm" mətni ilə yeni commit yaradırsınız. İndimainC2 commit-inə işarə edir;- cari
mainmövqeyindənfeature/new-titlebudağı yaradırsınız - yeni budaq da C2 commit-indən başlayır; feature/new-titlebudağında "Əla Layihəm" mətni ilə commit yaradırsınız. Budaq irəli gedib C3 commit-inə işarə edir;mainbudağına (hələ də C2 commit-indədir) qayıdıbfeature/new-titlebudağını birləşdirirsiniz.
Git görür ki, main budağı feature/new-title budağının birbaşa əcdadıdır: siz başqa budaqda işləyərkən main tarixçəsinə yeni commit əlavə edilməyib. Buna görə də konflikt olmadan main göstəricisini C3 commit-inə qədər irəli çəkir.
main tarixçəsi ayrılmadan feature/new-title tarixçəsi ilə davam edir, buna görə Git main göstəricisini irəli çəkir - konflikt yaranmır.
Dəyişiklik tarixçəsinə baxış
Layihənizdə nə baş verdiyini daha yaxşı anlamaq üçün onun tarixçəsinə baxmaq faydalıdır.
Git alətinin pəncərəsini açın (adətən IDE pəncərəsinin sol yan panelində və ya aşağı hissəsindəki işarədir) və Git alətlər panelində Log və ya Show Git Log bölməsini seçin. Bütün budaqlarınızın və commit-lərinizin qrafik görünüşünü görəcəksiniz. Buradan hansı budağın hansından ayrıldığını və onların harada birləşdiyini izləmək asandır.

Hər hansı commit-ə klikləyərək ora hansı dəyişikliklərin daxil olduğunu, onu kimin və nə vaxt yaratdığını görə bilərsiniz. Bu, kodunuz üçün əsl zaman maşınıdır.
Claude Code-un dəyişiklikləri adi commit-lərlə qeydə alınandan sonra bu tarixçədə görünəcək. Git Log-da onları öz dəyişikliklərinizlə yanaşı görəcəksiniz: istənilən commit-i açıb dəqiq nəyin dəyişdiyini yoxlamaq olar.
Claude Code ilə birlikdə necə işləyir
İndi budaqları bildiyiniz üçün Claude Code-un repozitoriyanızla işləyərkən nə etdiyini anlamaq daha asandır. Bu texnologiya ilə sizin üçün gördüyü işlərə və diqqət etməli olduğunuz məqamlara baxaq:
- tapşırıq və layihə qaydaları nəzərdə tutursa, ayrıca budaq yaradır;
- vacib məqamlarda
committəklif edir - siz diff-i oxuyub qəbul etmək və ya düzəltmək barədə qərar verirsiniz; - lazım olan saxlanmış commit-i tapmağa və commit edilməmiş dəyişiklikləri nəzərə alaraq geri qayıtma üsulunu seçməyə kömək edir;
- birləşdirmə konflikti yarananda sizdən kömək istəyə bilər - onu da IDE-nin həmin aləti ilə həll edirsiniz;
- pull request hazırlaya və şərh yaza bilir (PR - budağı əsas budağa birləşdirmək təklifi, məsələn, GitHub CLI vasitəsilə).
Razılaşmazdan əvvəl diff-ə baxın, xüsusən də Claude faylları silməyi və ya merge etməyi təklif edəndə. Beləcə, layihə tarixçəsinə dəqiq nəyin düşəcəyini biləcəksiniz.
Əvvəlki məqalə: Git ilə gündəlik iş · Növbəti məqalə: Pull request: yaradılmasından birləşdirilməyədək
GO TO FULL VERSION