CodeGym /Kurslar /Frontend SELF AZ /WebStorm-da git-şaxələri ilə işləyirik

WebStorm-da git-şaxələri ilə işləyirik

Frontend SELF AZ
Səviyyə , Dərs
Mövcuddur

11.1 Git-də Şaxələr

Git-də branches (şaxələrlə) işləmək — versiya idarəsinin əsas elementlərindən biridir və bir repozitoriyada paralel bir neçə inkişaf xətti aparmağa imkan verir. Şaxələnmə Git-i kolaborasiya, eksperimentlər və layihənin fərqli versiyalarını idarə etmək üçün güclü bir alət edir.

Git-də şaxələr

Git-də şaxələri qovluqlar kimi düşünə bilərsiniz, burada git sizin layihənizi kopyalayır. Sizin layihənizin əsas qovluğu sizin lokal repozitoriyanızdamain olaraq adlanır və git bu qovluğun kopyalarını yaradaraq sizə eksperimentlər aparmağa imkan verir, beləliklə əsas, yaxşı işləyən kodunuz zərər görmür. Bu cür qovluq-kopyalara şaxələr — branches deyilir.

Şaxələr — kodun alternativ variantlarıdır. Tutaq ki, siz böyük bir layihədə nəyisə dəyişmək, hansısa eksperiment aparmaq istəyirsiniz və tam əmin deyilsiniz ki, bu dəyişiklik işləyəcək. Bunu git olmadan necə edərdiniz?

Layihəni yeni bir qovluğa kopyalayaraq bütün dəyişiklikləri orada edə bilərsiniz. Əgər nəticədən razı qalsanız, onu əsas qovluğa əlavə edə bilərsiniz. Əgər təsir etməsə — sadəcə unutmaq olar və ya qovluğu tamamilə silmək.

Gəlin həyatdan bir nümunəyə baxaq. Tutaq ki, kitab yazırsınız:

  1. Sizin kitabın əlyazması var (əsas şaxə).
  2. Siz sonluğu dəyişmək istəyirsiniz (yeni bir şaxənin yaradılması).
  3. Yeni sonluğu ayrıca bir sənəddə yazırsınız (yeni şaxədə işləmək).
  4. Əgər yeni sonluq daha yaxşıdırsa, onu əlyazmada köhnə sonluğun yerinə yazırsınız (şaxələrin birləşdirilməsi).
  5. Yeni sonluğu olan ayrı sənədi silirsiniz (şaxənin silinməsi).

11.2 Şaxələrin yaradılması

WebStorm-da şaxə yaratmaq çox asandır:

Şaxə adını daxil edin:

WebStorm dərhal cari şaxənizin adını menyunun yuxarısında göstərəcək:

Bəs orda əvvəl nə var idi?

Orda sizin ilk və əsas şaxənizin adı var idi — main.

İndi isə orda test göstərilir, bu isə o deməkdir ki, Git (WebStorm-un rəhbərliyində) nəinki yeni bir şaxə yaratdı, həm də dərhal ona keçid etdi.

İndi cari test şaxəsindəki main.html faylına bir az kod əlavə edib commit edək:

11.3 Şaxələr arasında keçid

Addım 1. Şaxəni seçirik.

İndi isə gəlin köhnə şaxəmizə keçək. Üst menyuya klikləyək və orada nə görürük?

Təlaşlanmayın — hər şey sadədir:

Local — bu sizin yerli git-repository-nizin şaxələr siyahısıdır. Burada iki dənə var:

  • test
  • main

Remote — bu isə sizin uzaq repository-nizdir, yəni GitHub serverində yerləşən repository. Biz ora dəyişikliklərinizi push etmişik, amma yeni şaxə yoxdur, bu da məntiqlidir. Uzaq repository origin adı daşıyır və orada yalnız main şaxəsi var.

Recent — bu sadəcə olaraq son işlədiyiniz şaxələrin adlarının siyahısıdır: bu bölmə istifadə rahatlığı və sürət üçün WebStorm tərəfindən əlavə olunub.

Yerli repository adı ilə sağ tərəfdə olan origin/main - bu, hazırda sinxronizasiya edilmiş uzaq repository-nin adı və dəyişikliklərin ora push ediləcəyi yerdir.

Addım 2. Şaxənin kodunu cari qovluğa yükləyirik.

Addım 3. Yoxlayırıq.

Məndə main şaxəsi və köhnə kod göstərilir:

11.4 Şaxələrin Birləşməsi

Gəlin indi kodumuzu iki şaxədən birləşdirməyə çalışaq.

Addım 1. Əvvəlcə layihəmizə bir daha fayl əlavə edək — index.html və onun içində bir az kod yazaq:

  • index.html faylını yaradırıq
  • Onun içində <h1>Hello</h1> kodunu yazırıq
  • Faylı commit edirik

Budur, main şaxəsindəki iki faylım belə görünür:

Addım 2. Şaxələrin birləşməsi.

Hazırkı main şaxəmizə test şaxəsində edilən dəyişiklikləri daxil edirik.

Bunun üçün, yuxarı menyudan Merge ‘test’ into ‘main’ komandasını istifadə edirik:

Addım 3. Nəticəni yoxlayırıq.

Yoxlayırıq:

  • Yuxarıda hələ də main şaxəsi göstərilir
  • Bizdə 2 fayl var: index.htmlmain.html
  • main.html faylında test şaxəsində əlavə olunan kod var

11.5 Birleştirmə zamanı konfliktlər

Bəzən şəbəkələri birləşdirəndə konfliktlər olur.

Əgər bir faylda müxtəlif şəbəkələrdə dəyişiklik etmisinizsə və onları birləşdirməyə çalışırsınızsa, konflikt yaranacaq.

Mətn fayllarının konflikti

Git - çox ağıllı bir sistemdir - o, fayl tiplərini anlayır. Əgər fərqli yerlərdə mətn kimi qəbul etdiyi fayllarda dəyişikliklər etsəniz, Git bu dəyişiklikləri avtomatik olaraq uyğun yerlərə köçürəcək (sanki bunu bir insan edirmiş kimi).

Binari faylların konflikti

Amma haradasa şəkil və ya sənəd redaktə etsəniz, Git onların hissələrini birləşdirməyə çalışmayacaq. Sadəcə sizdən qərar vermənizi istərcək ki, hansı versiyanı hazırkı şəbəkədə saxlamaq istəyirsiniz.

Konfliktlərin əl ilə həlli

Əgər mətn faylının eyni yerində dəyişiklik etsəniz, Git fərqli versiyaları düzgün birləşdirə bilməyəcək və bunu sizin etməyinizi təklif edəcək:

Bu belə görünə bilər:

Burada nə görürsünüz:

  • Sol tərəfdə — main.html faylının main şəbəkəsinin içərisində olan məzmunu
  • Sağ tərəfdə — main.html faylının test şəbəkəsinin içərisində olan məzmunu
  • Ortada WebStorm sizə son kod versiyasını yazmağı təklif edir (düymələrə >><< vuraraq bir fayldan avtomatik dəyişiklikləri daxil edə bilərsiniz)

Mater versiyasını qəbul etdim və kodu əlimlə yenidən yazdım. Bu nəticə alındı:

11.6 Dəyişikliklərin tarixi

Faydalı və maraqlı bir şey. İstənilən faylın dəyişikliklər tarixini görmək üçün Show History düyməsinə klikləyə bilərsiniz. Onun iki yerdə olması mümkündür. Onu tapın.

Faylın main.html üçün dəyişikliklərin tarixi mənim üçün belə görünür:

İzahlar:

  • Solda müəyyən faylın dəyişikliklər tarixini görürsünüz:
    • Dəyişiklik nə qədər yenidirsə, o qədər üstdədir, nə qədər köhnədirsə, o qədər altdadır
    • Burada həmçinin şaxələrin birləşdirilməsi tarixi də göstərilir
  • Sağda — konkret commit-də edilən dəyişikliklər
1
Опрос
Dekorativ elementlər,  20 уровень,  3 лекция
недоступен
Dekorativ elementlər
Dekorativ elementlər
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION