Git nədir? Nə üçün kod yazarkən git-dən istifadə etmək lazımdır?

Git nədir? – sualını təzə başlayanlar və hətta hərdən köhnə proqramçılardanda eşitmək olar.

Çoxunuz kod yazır, və bəlkə də artıq bir neçə ildir ki maraqlı proqramlar yaradır.
Amma git barədə ancaq eşitmisinizsə, və istifadə etmirsinizsə, ümüdvaram ki bu məqalədən sonra üstünlüklərini başa düşüb istifadə etməyə başlayarsınız.

Git nədir?

Git – paylanmış versiyaya nəzarət sistemi (ingiliscə VCS – Version Control System).

Mənbə: Wikipedia

Əziz oxucular, məqalələrimi bəyənirsinizsə, zəhmət olmasa bloq-un Facebook səhifəsini bəyənin. Bununla mənə dəstəyinizi göstərmiş olacaqsınız.
Təşəkkür edirəm!


Olubmu ki, hər hansı əməkdaşınızla birgə bir layihənin üstündə işləmisiz, və bir zaman ikiniz də eyni faylı dəyişib hər hansı problem yaratmısınız?
Versiya nəzarət sistemlərindən qabağ bu problemlər tez tez baş verib.
Hətta kiminsə (hətta öz) kodunu oxuduğunuz halda əgər heçnə başa düşməmisinizsə, məcbur olmusunuz yenidən o kodu yazmağa, və ya saatlarla vaxt sərf etmisiniz ki onu oxuyub başa düşəsiniz.

Git və Git hostingləri (Github, GitLab, Bitbucket) bütün bu problemləri həll ediblər.
Artıq müasir şirkətlərdə və hətta open-source layihələrində bütün kod commmit-lərlə birgə əlavə olunur, və hər koddaki dəyişiklik qeydə alınır ki, sonradan həmin kodun dəyişmə səbəbini hamı bilsin. Hər sətrə dəqiq baxıb öyrənmək olur ki onu kim, haçan və niyə yazıb.

Bəlkə də sualınız olacaq ki, əgər layihəni tək mən aparıramsa, git nəyimə lazımdır?

Üstünlüklər

1) Yazdığınız kod push edən kimi gedir remote git hostinq-ına
2) Hər dəyişiklik qeydə alınır və gələcək özünüz üçün hər hansı mesajları commit mesajlarında saxlaya bilərsiniz
3) Kodunuzu kiməsə göstərəndə nəinki axırıncı versiyanı göstərə bilərsiz, hətta etdiyiniz bütün dəyişiklikləri də
4) Istənilən vaxt hər hansı bir versiyaya qayıtmaq imkanı
5) Köhnə versiyalardan hər hansı bir kodu yeni versiyaya kopiya etmək
6) Git-də həmçinin qol/budaq-lar (branch) əlavə etmək olar, onlar sayəsində eyni versiyadan bir neçə versiya yaratmaq olar, və nəticədə onları lazım olduqda birləşdirmək
7) Bir neçə versiya arasında fərgləri görmək
Və çoxlu çoxlu başqa üstünlüklər.

Mənfi cəhətlər

1) 10-15 ədəd əsas Git komandasına öyrənmək tənbəlliyi 😀

Əsas terminlər

Repository nədir?

Git repository – .git/ qovluğundan ibarətdir. Adətən bütöv layihə qovluğuna da Repository deyilir.
Bu qovluğun daxilində layihənin dəyişmə tarixçəsi saxlanılır. Bu gizli qovluğu sildikdə bütün tarixçəni silmiş olursunuz.

Local Repository nədir?

Git local repository – Proqramçının kompyuterində yerləşən .git qovluğu deməkdir.

Remote Repository nədir? Origin nədir?

Git remote repository (başqa cür Origin) – Git hostinqında yerləşən .git qovluğu deməkdir.

Pull Request nədir? / Merge Request nədir?

Git Pull Request və ya Merge Request – sizin Repository üçün hər hansı bir dəyişiklik sorğusu/müraciət. Pull Request siz (Repository müəllifi) tərəfdən icra olunub olunmaya bilər.

Fork nədir?

Git fork – Repository-nin kopiyası deməkdir. Adətən kimsə sizin layihənizi əsas kimi götürüb əlavə kod yazmaq istəsə, sizin açıqda (public) olan Repository-dən fork yaradıb öz işini görə bilər. Hətta sizin layihənizə Pull Request edə bilər ki, sizin kodunuzda nəsə dəyişib düzəltməyə cəhd etsin. Sizin icazəniz olmaqla o dəyişikliyi özünüzə keçirdə bilərsiniz.

Merge nədir?

Git merge – 2 qol/budaq (branch) arasındaki fərglərin bir yerə toplanması deməkdir. Çox halda Repository-nin əlavə budaqın əsas budaqa (master / production) birləşməsi deməkdir.

Commit nədir?

Git commit – dəyişikliklərin qeydə alınması prosessi. Commit lokal kompyüterdə baş verib, sonradan remote-a Push ilə yüklənir.

Pull nədir?

Git pull – uzaqda olan (remote Repository)-dən axırıncı dəyişikliklərin yüklənilməsi.

Git push nədir?

Git push – uzaqda olan (remote Repository)-yə axırıncı yaratdığınız (hələ ki göndərilməmiş) kommitlərin göndərilməsi.

Code review nədir?

Kodun keyfiyyətinin və uyğun olduğunun başqa proqramçılar tərəfdən yoxlanılması prosessi.
Code review haqqında ətrafli bir məqalə yazmışam.

Hörmətli oxucular, Git-in hosting-ləri (GitHub, Gitlab, Bitbucket) haqqında ətraflı olaraq növbəti məqalədə yazmağı planlaşdırıram…

Enjoy this blog? Please spread the word :)