github vs gitlab

GitHub yoxsa GitLab?

Git, Linux əməliyyat sisteminin yaradıcısı – Linus Torvalds tərəfindən yaradılmış versiya kontrol sistemidir. Git ilə işləməyi öyrənmək olduqca vacibdir, çünki şirkətlərin 99%-i Git – GitHub və ya GitLab platformalarından istifadə edirlər. Proqramçılar üçün Git-in üstünlükləri haqqında danışsaq, aşağıdakı mövzulara toxunmaq vacibdir.

1) Versiya nəzarət sistemi

Bu, proqram təminatının kodlarını internetdə saxlamağı təmin edir. Kompüterin daxili yaddaşında proyektləri saxlamaq bir proqramçı üçün təhlükə hesab edilir. Niyə? Çünki kompüterdə yaranacaq hər hansısa bir texniki nasazlıq bütün kodların silinməsi ilə nəticələnə bilər. Git-in versiyalama özəlliyi sayəsində isə istənilən vaxt proyektin əvvəlki versiyalarına qayıtmaq mümkündür.

2) Komanda şəklində işləmək

İş mühitində komanda kimi bir proyektin üzərində işləmək tez-tez rastlaşılan hallardan biridir. Git, bu işi də asanlaşdırır. Eyni proyekt üzərində bir nəçə nəfərin komanda şəklində işləməsini, kodların birləşdirilməsini, ən son versiyanın müəyyənləşdirilməsi prosesini təmin edir.

3) Offline istifadə edilə bilməsi

İnternet şəbəkəsi olmadan da kompüterdə saxlanılan proyektlərin üzərində işləmək mümkündür, çünki Git proyektin bir kopyasını lokal maşında saxlayır.

4) Açıq mənbə olması (Open source)

Onu da vurğulamaq lazımdır ki, bu üstünlüklərdən istifadə etmək üçün heç bir ödəniş tələb edilmir.

Git ilə işləmək üçün ən məşhur iki plaforma – GitHub və GitLab mövcuddur. Bunları bir-birindən fərqləndirən özəlliklərlə yanaşı ortaq tərəfləri də mövcuddur.

Müsbət cəhətlər

  • Açıq mənbə kod bazası üçün layihənin Git serverdəki qovluğunu (repository) yaratmaq imkanı
  • İstifadəçi rahatlığını təmin etmiş bir interfeys
  • Geniş istifadəçi sayı və icma dəstəyi
  • Pull sorğular və koment xüsusiyyətləri
  • Asan quraşdırma (setup), izləmə və nəzarət xüsusiyyətləri

Mənfi cəhətlər

  • API inteqrasiyasını yaxşı təmin etmir
  • Şəxsi repository-lər üçün ödəniş tələb edir
  • Daha az xüsusiyyətlərə malikdir

Müsbət cəhətlər

  • Açıq mənbə kod bazası üçün əlverişli platforma
  • İstifadəçi rahatlığını təmin etmiş bir interfeys
  • Şəxsi repository-lər üçün ödəniş tələb olunmur
  • İstənilən sayda şəxsi respository-lər yaratmağa imkan verir
  • Asan quraşdırılma (setup)
  • API inteqrasiyasına imkan verir
  • CLI istifadəçi təcrübəsi
  • CI , CD lifecycle-ı dəstəkləyir
  • Pull sorğular və kodlara baxış (code review) xüsusiyyətləri

Mənfi cəhətlər

  • Az sayda istifadəçi sayı və icma dəstəyi

 

İndi tez-tez istifadə edilən və bilməyiniz vacib olan Git əmrləri haqqında qısa olaraq danışaq.

git clone – GitHub və ya GitLab serverlərindəki istənilən repository-ni kopyalamaq üçün istifadə edilir.

git init – proyekti git repository halına gətirit və .git sonluqlu bir qovluq yaradır. Bu, qovluğu Git serverinə göndərmək üçün hazır vəziyyətə gətirir.

git add . – qovluqdakı bütün və ya yeni faylları əlavə edir.

git commit –m “Initial commit” – kodda edilən yeni dəyişiklər haqqında açıqlama qeyd etməyə imkan verir.

git pull – bu əmr vasitəsi ilə lokaldakı repository-ni Git serverindəki en son versiya ilə əvəzləyə bilərik.

git push – proyekti Git serverinə göndərmək üçün istifadə olunur.

git status – repository-dəki dəyişikliklər haqqında məlumat əldə edə bilərik.

git checkout – repository-dəki dəyişiklikləri geri qaytara bilərik.

git ignore – əgər Git-ə göndərilməsini istəmədiyiniz fayllar varsa (databaza məlumatlarının, email və ya şifrələrin saxlandığı fayllar), onların adlarını .gitignore faylı yaradaraq bura qeyd edirsiniz. Beləliklə, həmin fayllar repository-də görünməyəcək.

Git üzrə dərin biliklər əldə etməyiniz üçün Scott Chacon və Ben Straub tərəfindən yazılmış "Pro Git" kitabını sizinlə paylaşırıq. Kitab Azərbaycan dilinə tərcümə edilmişdir. Aşağıdakı linkə keçid edərək kitabdan ödənişsiz şəkildə yararlana bilərsiniz.

https://git-scm.com/book/az/v2

ATL Akademiya tələbələrinin layihələrini də Git-də görə bilərsiniz.

https://gitlab.com/atl_academy

 

Qeydiyyat Formu

ATL Akademiyada qeydiyyatdan keçmək, tədris proqramı ilə yaxından tanış olmaq və ya əlavə suallarınızın cavablandırılması üçün formu doldurun, sizinlə zəng vasitə ilə əlaqə saxlayaq.