CodeGym /Kurslar /Python SELF AZ /PyCharm-da git-şaxələrlə iş

PyCharm-da git-şaxələrlə iş

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

11.1 Git-də şaxələr

Git-də şaxələrlə branches işləmək — bu, versiyaların idarə olunmasının əsas elementlərindən biridir və bir repositorda bir neçə inkişaf xəttini paralel aparmağa imkan verir. Şaxələnmə, Git-i əməkdaşlıq, eksperimentlər və layihənin müxtəlif versiyalarının idarə olunması üçün güclü vasitə edir.

Git-də şaxələri qovluq olaraq təsəvvür edə bilərsiniz, burada Git sizin layihənizi kopyalayır. Sizin əsas layihə qovluğunuz sizin lokal repositori-də qoyulmuşdur — main. Git bu qovluğu kopyalayıb sizə eksperimentlər etməyə imkan yaradır, əsas, yaxşı işləyən kodu riskə atmadan. Bu cür kopya-qovluqlar şaxələrbranches adlanır.

Şaxələr — kodun alternativ versiyalarıdır. Fərz edək ki, siz böyük bir layihədə nəyisə yenidən düzəltmək istəyirsiniz və ya tam əmin olmadığınız bir eksperiment aparmaq istəyirsiniz. Git olmadan nə edərdiniz?

Layihəni yeni bir qovluqda kopyalayıb, orada hər şeyi dəyişə bilərdiniz. Əgər nəticəni bəyənsəniz, əsas qovluğa kopyalaya bilərsiniz. Əgər bəyənməsəniz — onu unuda və ya ümumiyyətlə silə bilərsiniz.

Gəlin həyatdan bir nümunəyə baxaq, məsələn, kitab yazmaq:

  1. Sizin kitabınızın əlyazması var (əsas şaxə).
  2. Siz sonluğu dəyişməyə qərar verirsiniz (yeni bir şaxə yaradılması).
  3. Yeni sonluğu ayrı bir sənəddə yazırsınız (yeni şaxədə işləmək).
  4. Əgər yeni sonluq daha yaxşıdırsa, köhnəni əlyazmada əvəz edirsiniz (şaxələrin birləşdirilməsi).
  5. Yeni sonluq sənədini silirsiniz (şaxənin silinməsi).

11.2 Branch yaratma

PyCharm-da branch yaratmaq çox asandır.

Branch'in adını daxil edin.

PyCharm dərhal yuxarı menyuda sizin cari branch'inizin adını göstərəcək:

Əvvəl nə idi?

Əvvəllər sizin ilk və əsas branch'izin adı — main görünürdü.

İndi isə test görünür, bu isə onu göstərir ki, Git (PyCharm rəhbərliyində) təkcə yeni bir branch yaratmayıb, həm də dərhal ona keçid edib.

Hazırkı test branch'dəki main.py faylına hər hansı bir kod əlavə edək və onu commit edək.

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

1-ci addım. Şaxəni seçirik.

İndi isə köhnə şaxəmizə keçək. Yuxarı menyuya klik edin və orada nə görürük?

Çaşmayın — hər şey çox sadədir:

Local — bu sizin lokal git-repozitoriyanızın şaxələrinin siyahısıdır; burada iki dənə var:

  • test
  • main

Remote — bu isə serverdə yerləşən uzaqdan (remote) repozitoriyanızdır, o, GitHub-da yerləşir. Biz dəyişikliklərinizi ora göndərdik, amma orada yeni bir şaxə yoxdur, bu da məntiqlidir. Uzaqdan repozitoriyanın adı origin-dir və orada yalnız main şaxəsi var.

Recent — bu isə ən son işlədiyiniz şaxələrin adlarının siyahısıdır. Bu bənd PyCharm-a rahatlıq və sürət üçün əlavə edilib.

Lokal repozitoriyanın adı yanında origin/main uzaqdan repozitoriyanın adı - bu repozitoriya ilə sinxronlaşdırılıb və dəyişikliklərin ora göndəriləcəyi yerdir.

2-ci addım — Şaxənin kodunu cari qovluğa yükləyirik.

3-cü addım. Yoxlayırıq:.

Məndə main və köhnə kod göstərilir.

11.4 Branch-lərin birləşdirilməsi

İndi isə gəlin kodumuzu iki branch-dən birləşdirək.

Addım 1. İlk öncə layihəmizə yeni bir fayl əlavə edək — init.py və içərisində bir az kod yazaq.

  • init.py faylı yaradılır
  • İçərisinə kod yazılır: print("Hello repo")
  • Fayl commiti edilir.

Bu, mənim main branch-dəki iki faylımın necə göründüyüdür:

Addım 2. Branch-lərin birləşdirilməsi.

İndiki main branch-ə test branch-də edilən dəyişiklikləri merge edək.

Bunun üçün yuxarı menyudan Merge ‘test’ into ‘main’ əmri istifadə olunur.

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

Yoxlayırıq:

  • Yuxarıda hələ də main branch göstərilir
  • İki faylımız var: init.pymain.py
  • main.py faylı test branch-də əlavə edilən kodu ehtiva edir.

11.5 Merge zamanı konfliklər

Bəzi hallarda branch-lərin birləşməsi zamanı konfliklər yaranır.

Əgər müxtəlif branch-lərdə eyni faylda dəyişiklik edərsinizsə və onları birləşdirməyə çalışsanız, konflikt yarana bilər.

Text faylların konflikti

Git çox ağıllı sistemdir, o, fayl tiplərindən baş çıxarır. Əgər text olaraq qəbul edilən faylların müxtəlif hissələrinə dəyişiklik edirsinizsə, o sadəcə bu dəyişiklikləri bir fayldan digərinə uyğun yerlərə yerləşdirəcək, sanki bunu insan edir.

Binary faylların konflikti

Amma əgər şəkil və ya sənədə dəyişiklik etsəniz, Git bu faylların hissələrini birləşdirməyə çalışmayacaq. O, sizdən soruşacaq ki, hansı versiyanı cari branch-də saxlamalı olduğunu seçəsiniz.

Konfliktlərin əl ilə həlli:

Əgər eyni text faylının eyni hissəsində dəyişiklik edirsinizsə, Git müxtəlif versiyaları düzgün birləşdirə bilmir və bunu sizin etməyinizi təklif edir.

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

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

  • Solda main branch-nin main.py faylının məzmunu
  • Sağda test branch-in main.py faylının məzmunu
  • Ortada PyCharm sizə son kod versiyasını yazmağı təklif edir (siz >><< düymələrinə klikləyərək, avtomatik olaraq fayllardan birinin dəyişikliklərini əlavə edə bilərsiniz).

Mən main variantını qəbul etdim və kodu əl ilə tamamladım. Baxın, nətər alındı.

11.6 Dəyişikliklərin tarixi

Faydalı və maraqlı bir şey: istənilən faylın tarixini görə bilərsiniz, Show History düyməsinə klikləyərək. Onun iki yeri ola bilər — tapmağa çalışın.

Mənim main.py faylı üçün dəyişikliklərin tarixi belə görünür:

Açıqlamalar:

  • Solda siz konkret faylın dəyişiklik tarixini görürsünüz:
    • Dəyişiklik nə qədər yeni olsa, o qədər yuxarıda olur; nə qədər köhnə olsa, bir o qədər aşağıda olur.
    • Burada həmçinin branches-lərin birləşmə tarixini görə bilərsiniz.
  • Sağda — konkret commit-də edilən dəyişikliklər göstərilir.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION