CodeGym /Kurslar /JAVA 25 SELF /Git-ə giriş: versiya nəzarəti nə üçün lazımdır

Git-ə giriş: versiya nəzarəti nə üçün lazımdır

JAVA 25 SELF
Səviyyə , Dərs
Mövcuddur

1. Versiya nəzarəti olmadan problem: faylları sadəcə kopyalamaq — pis fikirdir

Gəlin həyatdan bir situasiya ilə başlayaq. Təsəvvür edin ki, öz Java layihəniz üzərində işləyirsiniz. Hər şey yaxşı gedir, ta ki “eksperimentlər” anı gələnə qədər. Nəsə dəyişmək istəyirsiniz, amma işlək versiyanı sındırmaqdan qorxursunuz. Nə etməli? Əlbəttə, layihəni kopyalamaq!

Nəticədə diskdə belə “şedevrlər” yaranır:

MyProject/
├── Main.java
├── Main_backup.java
├── Main_final.java
├── Main_final2.java
├── Main_tochno_final.java
├── Main_tochno_tochno_final.java

Tanınır? İndi isə təsəvvür edin ki, layihəyə daha bir dost qoşuldu. O da faylları kopyalamağı sevir — amma öz üsulu ilə. Necə başa düşəsiniz ki, ən yeni və işlək versiya hansıdır? Kim nəyi dəyişib, bunu necə biləsiniz? Eksperiment uğursuz alınsa, hər şeyi necə geri qaytarmaq olar?

Versiya nəzarəti olmadan:

  • İşlək kodu itirmək və ya qarışdırmaq asandır.
  • Köhnə versiyaya “geri qayıtmaq” mümkün deyil.
  • İki-üç nəfərlə işləmək çətindir.
  • Xaos və eksperimentlərdən qorxu.

Məhz bu problemləri versiya nəzarəti sistemləri — məsələn, Git — həll edir.

2. Tərtibatçıya Git nə üçün lazımdır?

Git — güclü versiya nəzarəti sistemidir, proqram təminatı hazırlanarkən mənbə kodundakı dəyişiklikləri izləmək üçün istifadə olunur. O, tərtibatçılara faylların müxtəlif versiyalarını saxlamağa və ümumi layihə üzərində bir neçə nəfərin işini koordinator etməyə imkan verir.

Git-in əsas anlayışları:

Repozitoriya

Repozitoriya (və ya “repo”) — layihənin bütün tarixinin, o cümlədən bütün dəyişikliklərin və fayl versiyalarının saxlandığı yerdir.

Commit-lər

commit — layihənin saxlanmış vəziyyətidir. Git-də hər commit layihəyə hansı dəyişikliklərin kim tərəfindən və nə zaman edildiyi barədə məlumatı ehtiva edir. Commit-lər layihənin tarixini formalaşdırır və istənilən əvvəlki versiyaya qayıtmağa imkan verir.

        gitGraph
        commit id: "1"
        commit id: "2"
        commit id: "3"
        commit id: "4"
        commit id: "5"
        commit id: "6"
    

Hər commit layihənin əvvəlkindən sonra gələn, dəyişikliklərin ardıcıl tarixçəsini yaradan “snapshot”udur.

Budaqlar

branch — müstəqil inkişaf xəttidir. Susmaya görə Git main budağını yaradır. Yeni xüsusiyyətlər və ya düzəlişlər üçün yeni budaqlar yarada, sonra isə onları əsas budaqla birləşdirə bilərsiniz.

        gitGraph
        commit id: "1"
        commit id: "2"
        branch develop
        commit id: "3"
        commit id: "4"
        commit id: "5"
        checkout main
        commit id: "6"
        commit id: "7"
        merge develop
        commit id: "8"
        commit id: "9"
    

Əsas main budağından paralel inkişaf üçün develop budağı ayrılır. İş tamamlandıqdan sonra develop-dəki dəyişikliklər yenidən main-ə birləşdirilir.

3. Əsas Git əmrləri (qapağın altında olanlar)

Aşağıda terminal vasitəsilə Git-lə işləmək üçün əsas əmrlərin siyahısı verilir. Bütün əməliyyatların əsasında hansı əmrlərin dayandığını başa düşmək vacibdir. Lakin biz GUI-yanaşmasına sadiq qalacağıq və bu hərəkətlərin hamısını IntelliJ IDEA-nın rahat qrafik interfeysi ilə yerinə yetirməyi öyrənəcəyik. Bu əmrlərə “qapağın altında” baş verənlər kimi baxın.

Əmr Təsvir
git init Cari qovluqda yeni Git repozitoriyasını inicializasiya edir.
git clone Repozitoriyanı URL üzrə yeni qovluğa klonlayır.
git add Faylları növbəti commit üçün indekssizəyə (staging) əlavə edir.
git commit Hazırlanmış dəyişiklikləri repozitoriyada qeydə alır.
git push Dəyişiklikləri yerli repozitoriyadan uzaq repozitoriyaya göndərir.
git pull Cari budağı uzaq repozitoriyanın son versiyası ilə yeniləyir.
git branch Budaqları göstərir, yaradır və ya silir.
git merge Göstərilən budağın dəyişikliklərini cari budaqla birləşdirir.

Bu əmrlər Git-də işin əsas alətlərini təmsil edir və istənilən ölçülü layihələrdə kod dəyişikliklərini, budaqları və birləşdirmələri idarə etməyə imkan verir.

        sequenceDiagram
        participant İş qovluğu
        participant İndeksləmə sahəsi (Staging)
        participant Yerli repozitoriya
        participant Uzaq repozitoriya

        İş qovluğu ->> İndeksləmə sahəsi (Staging): git add (Hazırlamaq)
        İndeksləmə sahəsi (Staging) ->> Yerli repozitoriya: git commit (Yerli olaraq saxlamaq)
        Yerli repozitoriya ->> Uzaq repozitoriya: git push (Serverə göndərmək)
        Uzaq repozitoriya ->> İş qovluğu: git pull (Yeniləmələri yükləmək)
    

4. Kodu saxlayan üç məkan

Versiya nəzarəti sistemindən kodunuz üçün istifadə etdikdə, sadə dillə desək, o, üç yerdə saxlanılacaq:

1. Uzaq repozitoriya

Bu, adətən GitHub, GitLab və ya Bitbucket kimi servislərdə yerləşən, kodunuzu saxlamaq üçün mərkəzləşdirilmiş yerdir. Onlar kodun mərkəzləşdirilmiş saxlanmasını təmin edir və əməkdaşlığın əsasını təşkil edir. Uzaq repozitoriya build, test və tətbiqlərin yerləşdirilməsi kimi proseslərin avtomatlaşdırılması üçün inteqrasiya nöqtəsi rolunu oynayır.

2. Yerli repozitoriya

Yerli repozitoriya — kompüterinizdə saxlanan kodun şəxsi surətidir. Bu repozitoriyada internet bağlantısı olmadan Git-in bütün əməliyyatlarını (commit-lər, budaqlanma, birləşdirmələr) edə bilərsiniz.

3. İş qovluğu

Kompüterinizdəki iş qovluğu hazırda üzərində işlədiyiniz layihənin aktual fayllarını ehtiva edir. Burada faylları görə və dəyişə, yeni funksionallıq əlavə edə və ya xətaları düzəldə bilərsiniz.

Bu komponentlər birlikdə mənbə kodun idarəsi üçün güclü infrastruktur yaradır, tərtibatçılara layihə tarixçəsini idarə etməyə və əməkdaşlıq etməyə imkan verir.

5. GitHub — sizin portfeliniz

GitHubGit versiya nəzarəti sistemindən istifadə edən mənbə kodunun hostinqi üçün aparici veb-platformadır. 2008-ci ildə əsaslanan bu xidmət qısa müddətdə bütün dünyada tərtibatçılar üçün əsas alətlərdən birinə çevrildi.

GitHub istifadəçilərə layihələri idarə etmək üçün repozitoriyalar yaratmaq, koddakı dəyişiklikləri nəzarətdə saxlamaq və digər tərtibatçılarla əməkdaşlıq etmək imkanı verir. Müasir tərtibatçı üçün GitHub profili potensial işəgötürənlərə göstərə biləcəyi portfelin vacib hissəsidir.

6. GitHub-da ilk repozitoriyanızın yaradılması

Addım 1. https://github.com ünvanına daxil olun və qeydiyyatdan keçin.

Addım 2. Yeni repozitoriya yaratmaq üçün New repository düyməsini basın.

Addım 3. Repozitoriya üçün parametrləri təyin edin:

  1. Repozitoriyanın adı: məntiqli bir ad düşünün.
  2. Açıq və ya özəl: tədris layihələri üçün “Public” seçmək daha yaxşıdır ki, onu başqaları görə bilsin.
  3. Add a README file: bu seçimə mütləq işarə qoyun. README — layihənizin “üzüdür”.
  4. Add .gitignore: açılan siyahıya klikləyin və proqramlaşdırma diliniz üçün şablonu seçin.
  5. Choose a license: ötürmək olar.
  6. Create repository düyməsini basın.

Addım 4. Təbriklər, ilk uzaq repozitoriyanız yaradıldı!

7. Git-in quraşdırılması və sazlanması

Git-in əsaslarını konsol əmrləri ilə öyrənmək mümkündür (videoda göstərildiyi kimi), lakin gündəlik işdə tərtibatçıların 99%-i məhz IDE-yə daxil edilmiş rahat alətlərdən istifadə edir. Məqsədimiz — sizi peşəkarların işlədiyi kimi işləməyə öyrətməkdir.

JetBrains-in bütün müasir IDE-lərində Git-lə iş üçün interfeys — istər Java/Kotlin üçün IntelliJ IDEA, istər C# üçün Rider, istərsə də Python üçün PyCharm — demək olar ki, eynidir. Bu o deməkdir ki, Git-lə bir mühitdə işləməyi öyrəndikdən sonra bu bacarıqları asanlıqla digər mühitlərdə də tətbiq edə biləcəksiniz. Buna görə biz IntelliJ IDEA-nı universal nümunə kimi istifadə edəcəyik. Burada gördükləriniz sevimli IDE-nizdə də eyni cür görünəcək və işləyəcək.

Kompüterinizdə Git-lə işləmək üçün Git əvvəlcə quraşdırılmalıdır. Əgər IntelliJ IDEA istifadə edirsinizsə, sistemdə Git tapılmasa, çox güman ki, onu avtomatik quraşdırmağı təklif edəcək. Bu təkliflə razılaşmağı məsləhət görürük — bu, ən asan yoldur.

Cari layihəni File > Close Project seçməklə bağlayın və Clone Repository düyməsini basın.

Əgər onu əl ilə quraşdırmaq istəyirsinizsə, rəsmi saytdan istifadə edin: https://git-scm.com/downloads.

8. Bir az tarix: main vs master

Əvvəllər Git-də susmaya görə budaq master adlanırdı. Lakin 2020-ci ildə tərtibatçı icması və GitHub da daxil olmaqla ən böyük platformalar daha neytral termin — main — istifadəsinə keçdi.

Bunu bilmək vacibdir, çünki bəzi köhnə məqalələrdə və ya layihələrdə hələ də master budağına istinad görə bilərsiniz. Bizim mühazirələrimizdə və müasir layihələrdə əsas budaq hər zaman main olacaq.

main-ə keçid haqqında daha çox məlumat üçün aşağıdakı keçidlərə baxın:

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION