CodeGym /Kurslar /C# SELF /Git-ə giriş: niyə version kontrolu lazımdır

Git-ə giriş: niyə version kontrolu lazımdır

C# SELF
Səviyyə , Dərs
Mövcuddur

1. Version kontrolu olmadan problem: faylları sadəcə kopyalamaq niyə pis fikirdir

Gəlin həyati situasiyadan başlayaq. Təsəvvür edin ki, siz öz C#-proyektiniz üzərində işləyirsiniz. Hər şey yaxşı gedir, ta ki "eksperimentlər" anı gələnə qədər. Siz nəsə dəyişmək qərarına gəlirsiniz, amma işləyən versiyanı pozmaqdan qorxursunuz. Nə etmək lazımdır? Təbii ki, layihəni kopyalamaq!

Nəticədə diskinizdə belə şah əsərlər yaranır:

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

Tanışdır? İndi təsəvvür edin ki, layihəyə daha bir dost qoşulur. O da faylları kopyalamağı sevir — amma öz üsulu ilə. Necə başa düşmək olar, hansı versiya ən yeni və işlənmişdir? Kimin nəyi dəyişdiyini necə öyrənmək olar? Eksperiment uğursuz olarsa, hər şeyi necə geri qaytarmaq olar?

Version kontrolu olmadıqda:

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

Elə bu problemləri version kontrol sistemləri həll edir — məsələn, Git.

2. İnkişafçı üçün Git niyə lazımdır?

Git — güclü version control sistemi dir, onu proqram təminatı inkişafı zamanı mənbə kodunda olan dəyişiklikləri izləmək üçün istifadə edirlər. Bu sistem inkişafçılara faylların müxtəlif versiyalarını saxlamağa və birgə layihə üzərində bir neçə insanın işini əlaqələndirməyə imkan verir.

Git-in əsas anlayışları:

Repository

Repository (və ya "repo") — layihənin bütün tarixçəsinin saxlandığı yerdir, daxil olmaqla bütün dəyişikliklər və fayl versiyaları.

Commits

commit — layihənin yadda saxlanmış vəziyyətidir. Hər bir commit Git-də layihədə hansı dəyişikliklərin edildiyi, kimin və nə vaxt etdiyinə dair məlumat saxlayır. Commit-lər layihənin tarixçəsini təşkil edir və istənilən əvvəlki versiyaya geri dönməyə imkan verir.

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

Hər bir commit layihənin əvvəlkindən sonra gələn "snapshot"udur, ardıcıl dəyişikliklər tarixçəsini formalaşdırır.

Branches

branch — müstəqil inkişaf xəttidir. Default olaraq Git main branch-ını yaradır. Siz yeni feature-lər və ya fix-lər üçün yeni branch-lar yarada bilərsiniz və sonra onları əsas branch-a 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 branch-dan develop branch-ı ayrılır paralel inkişaf üçün. İş tamamlandıqdan sonra develop-dəki dəyişikliklər main-ə merge edilir.

3. Git-in əsas komandaları (kapotun altında olanlar)

Aşağıda terminal vasitəsilə Git ilə işləmək üçün əsas komandaların siyahısı var. Hansı komandaların bütün əməliyyatların əsasını təşkil etdiyini başa düşmək vacibdir. Lakin biz GUI-yanaşmasına sadiq qalacağıq və bu əməliyyatları IntelliJ IDEA-nın rahat qrafik interfeysi vasitəsilə necə etmək lazım olduğunu öyrənəcəyik. Bu komandaları kapotun altında baş verən şeylər kimi qəbul edin.

Komanda Təsvir
git init Cari direktoriyada yeni Git-repository-ni inicializasiya edir.
git clone Repository-ni URL-dən yeni direktoriyaya klonlayır.
git add Sonraki commit üçün faylları index-ə əlavə edir.
git commit Hazırlanmış dəyişiklikləri repository-də commit edir.
git push Lokal repository-dən dəyişiklikləri remote-a göndərir.
git pull Cari branch-ı remote repository-dən ən son versiya ilə yeniləyir.
git branch Branch-ları göstərir, yaradır və ya silir.
git merge Göstərilən branch-dakı dəyişiklikləri cari branch-a birləşdirir.

Bu komandalar Git-də kod dəyişikliklərini, branch-ları və merge-ləri idarə etməyə imkan verən əsas alətlərdir və layihənin istənilən ölçüsü üçün faydalıdır.

        sequenceDiagram
        participant Ish_direktoriyasi
        participant Oblast_indexlənməsi_Staging
        participant Lokal_repository
        participant Udalennyy_repository

        Ish_direktoriyasi ->> Oblast_indexlənməsi_Staging: git add (Hazırlamaq)
        Oblast_indexlənməsi_Staging ->> Lokal_repository: git commit (Lokal olaraq saxlamaq)
        Lokal_repository ->> Udalennyy_repository: git push (Serverə göndərmək)
        Udalennyy_repository ->> Ish_direktoriyasi: git pull (Yenilikləri yükləmək)
    

4. Kodun saxlandığı üç yer

Version kontrol sistemi ilə işləyərkən, kod xülasə olaraq üç yerdə saxlanılır:

1. Remote repository

Bu, kodunuzun mərkəzləşdirilmiş saxlanma yeridir, adətən GitHub, GitLab və ya Bitbucket kimi servislərdə yerləşir. Onlar kod üçün mərkəzləşdirilmiş saxlama təmin edir və birgə işin əsasını təşkil edir. Remote repository avtomatlaşdırma prosesləri üçün (build, test, deploy) inteqrasiya nöqtəsi rolunu oynayır.

2. Lokal repository

Lokal repository — kompüterinizdə saxlanılan şəxsi kod nüsxənizdir. Bu repository-də siz internet bağlantısı olmadan bütün Git əməliyyatlarını (commit-lər, branch-lar, merge-lər) edə bilərsiniz.

3. İşçi direktoriyası

İşçi direktoriyası kompüterinizdə hazırda üzərində işlədiyiniz layihə fayllarını ehtiva edir. Burada faylları görə və dəyişdirə, yeni funksionallıq əlavə edə və ya səhvləri düzəldə bilərsiniz.

Bu komponentlər birlikdə kod tarixçəsini idarə etmək və inkişafçıların əməkdaşlığını təmin etmək üçün güclü infrastruktur yaradır.

5. GitHub — sizin portfolio

GitHubmənbə kodunun hostinqi üçün aparıcı web-platformadır, Git version control sistemindən istifadə edir. 2008-ci ildə yaradılmış GitHub sürətlə dünyanın hər yerində inkişafçılar üçün əsas alətlərdən birinə çevrildi.

GitHub istifadəçilərə layihələr üçün repository-lər yaratmağa, koddakı dəyişiklikləri idarə etməyə və digər inkişafçılarla əməkdaşlıq etməyə imkan verir. Müasir inkişafçı üçün GitHub profilı potensial işəgötürənlərə göstərilə bilən vacib portfolio hissəsidir.

6. GitHub-da ilk repository-nizi yaratmaq

Addim 1. https://github.com saytına daxil olun və qeydiyyatdan keçin.

Addim 2. Yeni repository yaratmaq üçün New repository düyməsini basın.

Addim 3. Repository üçün parametrləri təyin edin:

  1. Repository adı: məntiqli bir ad düşünün.
  2. Public yoxsa private: tədris layihələri üçün "Public" seçmək daha yaxşıdır ki, başqaları da görə bilsin.
  3. Add a README file: bu seçimi mütləq işarələyin. README layihənizin "üzüdür".
  4. Add .gitignore: drop-down menyudan diliniz üçün şablonu seçin.
  5. Choose a license: buranı ötüb keçə bilərsiniz.
  6. Düyməni basın Create repository.

Addim 4. Təbriklər, sizin ilk remote repository-niz yaradıldı!

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

Git-in əsaslarını konsol komandaları vasitəsilə öyrənmək mümkündür (videoda göstərildiyi kimi), amma gündəlik işdə inkişafçıların 99%-i məhz IDE-ə daxil edilmiş rahat alətlərdən istifadə edir. Məqsədimiz — sizi peşəkarların istifadə etdiyi şəkildə işləməyi öyrətməkdir.

JetBrains-in bütün müasir IDE-lərində Git ilə iş interfeysi — IntelliJ IDEA (Java/Kotlin üçün), Rider (C# üçün) və ya PyCharm (Python üçün) — praktiki olaraq eynidir. Bu o deməkdir ki, bir mühitdə Git ilə işləməyi öyrənsəniz, bu bacarıqları başqa mühitdə də rahat tətbiq edə biləcəksiniz. Buna görə nümunə kimi IntelliJ IDEA istifadə edəcəyik. Burada gördüyünüz hər şey sizin sevdiyiniz IDE-də də eyni görünəcək və işləyəcək.

Git-i kompüterinizdə işlətmək üçün əvvəlcə onu quraşdırmaq lazımdır. Əgər IntelliJ IDEA istifadə edirsinizsə, əgər sistemdə Git tapılmasa, o ehtimal ki, Git-in avtomatik quraşdırılmasını təklif edəcək. Biz bu təklifə razılaşmağı tövsiyə edirik — bu ən sadə yoldur.

Hazırkı layihəni bağlayın: File > Close Project seçin və Clone Repository düyməsini basın.

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

8. Kiçik tarixçə: main vs master

Əvvəllər Git-də default branch adətən master idi. Lakin 2020-ci ildə inkişafçı icması və böyük platformalar, o cümlədən GitHub, daha neytral termin olan main-ə keçdilər.

Bu vacibdir, çünki bəzi köhnə məqalələrdə və layihələrdə hələ də master branch-ına rast gələ bilərsiniz. Bizim mühazirələrdə və müasir layihələrdə əsas branch həmişə main olacaq.

main-ə keçid haqqında daha ətraflı:

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