-
1. Başlanğıc
- 1.1 Versiyaya Nəzarət Haqqında
- 1.2 Git’in Qısa Hekayəsi
- 1.3 Git Nədir?
- 1.4 Əmr Sətiri
- 1.5 Git’i Quraşdırmaq
- 1.6 İlk Dəfə Git Quraşdırması
- 1.7 Kömək Almaq
- 1.8 Qısa Məzmun
-
2. Git’in Əsasları
-
3. Git’də Branch
- 3.1 Nutshell’də Branch’lar
- 3.2 Sadə Branching və Birləşdirmə
- 3.3 Branch İdarəedilməsi
- 3.4 Branching İş Axınları
- 3.5 Uzaq Branch’lar
- 3.6 Rebasing
- 3.7 Qısa Məzmun
-
4. Server’də Git
- 4.1 Protokollar
- 4.2 Serverdə Git Əldə Etmək
- 4.3 Sizin öz SSH Public Key’nizi yaratmaq
- 4.4 Server qurmaq
- 4.5 Git Daemon
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Üçüncü Tərəf Seçimləri
- 4.10 Qısa Məzmun
-
5. Paylanmış Git
-
6. GitHub
-
7. Git Alətləri
- 7.1 Reviziya Seçimi
- 7.2 Interaktiv Səhnələşdirmə
- 7.3 Stashing və Təmizləmə
- 7.4 İşinizin İmzalanması
- 7.5 Axtarış
- 7.6 Tarixi Yenidən Yazmaq
- 7.7 Reset Demystified
- 7.8 İnkişaf etmiş Birləşmə
- 7.9 Rerere
- 7.10 Git ilə Debugging
- 7.11 Alt Modullar
- 7.12 Bundling
- 7.13 Dəyişdirmək
- 7.14 Etibarlı Yaddaş
- 7.15 Qısa Məzmun
-
8. Git’i Fərdiləşdirmək
- 8.1 Git Konfiqurasiyası
- 8.2 Git Atributları
- 8.3 Git Hook’ları
- 8.4 Git-Enforced Siyasət Nümunəsi
- 8.5 Qısa Məzmun
-
9. Git və Digər Sistemlər
- 9.1 Git Müştəri kimi
- 9.2 Git’ə Miqrasiya
- 9.3 Qısa Məzmun
-
10. Git’in Daxili İşləri
- 10.1 Plumbing və Porcelain
- 10.2 Git Obyektləri
- 10.3 Git Referansları
- 10.4 Packfile’lar
- 10.5 Refspec
- 10.6 Transfer Protokolları
- 10.7 Maintenance və Məlumatların Bərpası
- 10.8 Mühit Dəyişənləri
- 10.9 Qısa Məzmun
-
A1. Appendix A: Digər Mühitlərdə Git
- A1.1 Qrafik interfeyslər
- A1.2 Visual Studio’da Git
- A1.3 Visual Studio Code’da Git
- A1.4 Eclipse’də Git
- A1.5 Sublime Text’də Git
- A1.6 Bash’da Git
- A1.7 Zsh’də Git
- A1.8 PowerShell’də Git
- A1.9 Qısa Məzmun
-
A2. Appendix B: Proqramlara Git Daxil Etmək
- A2.1 Əmr-sətri Git
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
A3. Appendix C: Git Əmrləri
- A3.1 Quraşdırma və Konfiqurasiya
- A3.2 Layihələrin Alınması və Yaradılması
- A3.3 Sadə Snapshotting
- A3.4 Branching və Birləşmə
- A3.5 Layihələrin Paylaşılması və Yenilənməsi
- A3.6 Yoxlama və Müqayisə
- A3.7 Debugging
- A3.8 Patching
- A3.9 E-poçt
- A3.10 Xarici Sistemlər
- A3.11 İdarəetmə
- A3.12 Plumbing Əmrləri
3.4 Git’də Branch - Branching İş Axınları
Branching İş Axınları
İndi branch və aşağı birləşmə əsaslarını öyrəndiyimizə görə, onlarla nə edə bilərsən və ya etməlisən? Bu bölmədə, bu yüngül branch-ın mümkün olduğu bəzi ümumi iş axınlarını əhatə edəcəyik, buna görə onları öz inkişaf dövrünüzə daxil etmək istəməyinizə qərar verə bilərsiniz.
Uzun Müddət İşləyən Branch-lar
Git sadə üç tərəfli birləşmə istifadə etdiyi üçün uzun bir müddət ərzində bir branch-dan digərinə bir neçə dəfə birləşmək ümumiyyətlə asandır. Bu, həmişə açıq olan və inkişaf dövrünüzün müxtəlif mərhələləri üçün istifadə etdiyiniz bir neçə branch-a sahib ola biləcəksiniz deməkdir; müntəzəm olaraq bəzilərindən digərlərinə birləşə bilərsiniz.
Bir çox Git developerində bu yanaşmanı əhatə edən bir iş axını var, məsələn, yalnız master
branch-da tamamilə sabit bir koda sahib olmaq - bəlkə də yalnız buraxılmış və ya buraxılacaq kod.
Onların sabitlik yoxlamaq üçün işlədikləri və ya sabitliyi test etmək üçün develop
və ya next
adlı başqa bir paralel branch-ı var - bu mütləq həmişə sabit olmur, lakin sabit vəziyyətə gəldikdə onu master
-ə birləşdirmək olar.
Hazır olduqları zaman mövzu branch-ları (qısa müddətli branch-lar, əvvəlki iss53
branch-ı kimi) hazırlamaq üçün istifadə etdikləri, bütün testləri keçdiklərini və səhvləri tanımadıqlarını təmin etmək üçün istifadə olunur.
Əslində, etdiyiniz tapşırığın cərgəsinə doğru hərəkət edən göstəricilərdən bəhs edirik. Sabit branch-lar törətmə tarixinizdəki xəttdən daha aşağı, bleeding-edge branch-lar isə tarixdən daha uzaqdır.
![Proqressiv-sabitlik branch-nın xətti görünüşü](png/lr-branches-1.png)
Tamamilə sınaqdan keçirildikdə dəstləri məzunları daha stabil bir silosa verdikləri iş silosları kimi düşünmək ümumiyyətlə daha asandır.
![Proqressiv-sabitlik branch-a bir ``silo'' görünüşü](png/lr-branches-2.png)
Bunu bir neçə səviyyəli sabitlik üçün davam etdirə bilərsiniz.
Bəzi daha böyük layihələrdə, next
və ya master
branch-a girməyə hazır ola bilməyən branch-ı birləşdirən proposed
və ya pu
(təklif olunan yeniləmələr) branch-ı vardır.
İdeya budur ki, branch-larınızın sabitliyin müxtəlif səviyyələrindədir; daha sabit bir səviyyəyə çatdıqda, yuxarıdakı branch-a birləşdirilirlər.
Yenə də çoxsaylı uzun branch-lara sahib olmaq lazım deyil, ancaq çox böyük və ya mürəkkəb layihələrlə məşğul olduğunuzda çox vaxt faydalıdır.
Mövzu Branch-ları
Mövzu branch-ları istənilən ölçüdə layihələrdə faydalıdır. Bir mövzu branch-ı müəyyən bir xüsusiyyət və ya əlaqəli bir iş üçün yaratdığınız və istifadə etdiyiniz qısa ömürlü bir branch-dır. Bu, əvvəllər bir VNS ilə heç görmədiyiniz bir şeydir, çünki branch yaratmaq və birləşdirmək ümumiyyətlə çox bahadır. Ancaq Git-də gündə bir neçə dəfə branch yaratmaq, üzərində işləmək, birləşdirmək və silmək çox yaygındır.
Bunu son hissədə yaratdığınız iss53
və hotfix
branch-ları gördünüz.
Onlara bir neçə commit-lər verdiniz və əsas branch-ınıza birləşdirildikdən sonra birbaşa sildisiniz.
Bu üsul sizə tez və tamamilə kontekstə keçməyə imkan verir - işiniz siloslara ayrıldığı üçün bu şöbədəki bütün dəyişikliklərin bu mövzu ilə əlaqəli olması, kodun baxılması zamanı nələrin baş verdiyini və bu kimi şeyləri görmək asandır.
Dəyişiklikləri dəqiqələr, günlər və ya aylar ərzində saxlaya və hazır olduqları müddətdə, yaradılan və ya işlədikləri qaydadan asılı olmayaraq birləşdirə bilərsiniz.
Bəzi işlərin nümunəsini nəzərdən keçirin (master
-da),bir məsələ üçün branching (iss91
),eyni işin başqa bir yolunu sınamaq üçün ikinci branch üçün bir az üzərində işləyirik (iss91v2
),sonra master
branch-na qayıdıb bir müddət orada işlədib, sonra yaxşı bir fikir olduğuna əmin olmadığınız bir işi görmək üçün oraya branch edin (dumbidea branch-ı).
Sizin commit tarixiniz belə görünəcək:
![Bir neçə mövzulu branch-lar](png/topic-branches-1.png)
İndi deyək ki, məsələnizin ən yaxşı ikinci həll yolu kimi qərar verdiniz (iss91v2
);və iş yoldaşlarınıza dumbidea
branch-nı göstərdiniz və genius olduğu ortaya çıxır.
Orijinal iss91
filialını ata bilərsiniz (C5
və C6
commit-lərini itirir) və digər ikisində birləşdirə bilərsiniz.
![`dumbidea` və `iss91v2`-ı birləşdikdən sonra tarix](png/topic-branches-2.png)
dumbidea
və iss91v2
-ı birləşdikdən sonra tarixGit layihəniz üçün mümkün olan müxtəlif iş axını barədə Paylanmış Git-də daha ətraflı məlumat verəcəyik, buna görə növbəti layihənizin hansı branching sxemindən istifadə edəcəyinə qərar verməzdən əvvəl əmin olun.
Bütün bunları etdiyiniz zaman bu branch-ların tamamilə local olduğunu xatırlamaq vacibdir. Branching və birləşmə halında hər şey yalnız Git depolarınızda edilir - serverlə heç bir əlaqə yoxdur.