GitHub nədir?
GitHub — proqramçıların kodlarını və layihə fayllarını saxlamaq, dəyişiklikləri izləmək, komanda şəklində işləmək və proqram təminatı layihələrini idarə etmək üçün istifadə etdiyi onlayn platformadır. GitHub-un əsasını Git adlı versiya idarəetmə sistemi təşkil edir. Git proqramçının layihədə etdiyi dəyişiklikləri qeyd etməyə imkan verir. GitHub isə Git ilə idarə olunan layihələri internet üzərində saxlamaq, paylaşmaq və digər proqramçılarla birlikdə inkişaf etdirmək üçün əlavə imkanlar təqdim edir. Sadə desək, proqramçı kompüterində layihə hazırlayır, Git vasitəsilə dəyişiklikləri izləyir və layihəni GitHub-a göndərərək onlayn repository-də saxlayır. GitHub həm fərdi proqramçılar, həm proqramlaşdırma komandaları, həm də açıq mənbəli layihələr üçün geniş istifadə olunur.
GitHub nə üçün istifadə olunur?
GitHub yalnız kod saxlamaq üçün istifadə edilən platforma deyil. Müasir proqram təminatının hazırlanması prosesində müxtəlif funksiyaları yerinə yetirir.
GitHub vasitəsilə:
- proqram kodlarını saxlamaq;
- layihədə edilən dəyişikliklərin tarixçəsini izləmək;
- proqramın əvvəlki versiyalarına baxmaq;
- müxtəlif funksiyalar üzərində ayrı-ayrılıqda işləmək;
- komanda üzvləri ilə eyni layihəni inkişaf etdirmək;
- kod dəyişikliklərini yoxlamaq;
- açıq mənbəli layihələrə töhfə vermək;
- layihə sənədlərini paylaşmaq;
- proqramlaşdırma portfolio-su yaratmaq mümkündür.
Məsələn, bir Frontend proqramçı hazırladığı sayt layihəsini GitHub repository-sində saxlaya bilər. Başqa proqramçı həmin repository-yə baxaraq kodun strukturunu, istifadə olunan texnologiyaları və layihənin inkişaf tarixçəsini görə bilər.
Git və GitHub arasında fərq nədir?
Git və GitHub tez-tez eyni anlayış kimi qəbul edilir, lakin onlar fərqli texnologiyalardır. Git — versiya idarəetmə sistemidir. Git kompüterdə lokal olaraq işləyə və layihədə edilən dəyişiklikləri izləyə bilər. GitHub isə Git repository-lərinin internet üzərində saxlanılması və idarə olunması üçün istifadə olunan platformadır. Məsələn, internet bağlantısı olmadan kompüterinizdə Git vasitəsilə commit yarada bilərsiniz. Daha sonra həmin dəyişiklikləri GitHub-dakı remote repository-yə göndərə bilərsiniz.
Sadə müqayisə ilə:
Git → dəyişiklikləri izləyən sistem
GitHub → Git layihələrinin saxlandığı və əməkdaşlıq edilən onlayn platforma
Bu səbəbdən proqramlaşdırma öyrənərkən Git və GitHub adətən birlikdə öyrənilir.
Repository nədir?
Repository və ya qısaca repo — layihənin kodlarının, fayllarının və dəyişiklik tarixçəsinin saxlandığı əsas sahədir. Məsələn, bir veb sayt layihəsinin repository-si daxilində aşağıdakı fayllar ola bilər:
my-project/
│
├── index.html
├── style.css
├── script.js
├── images/
└── README.md
Repository yalnız mövcud faylları saxlamır. Git vasitəsilə həmin fayllarda zaman ərzində edilən dəyişikliklərin tarixçəsi də izlənə bilər. GitHub-da repository public və ya private ola bilər. Public repository internet istifadəçiləri tərəfindən görünə bilər. Private repository isə yalnız icazə verilmiş istifadəçilər üçün əlçatan olur.
Commit nədir?
Commit layihədə edilən müəyyən dəyişikliklərin Git tarixçəsində qeyd olunmasıdır. Commit-i layihənin müəyyən andakı vəziyyətinin qeyd edilməsi kimi düşünmək mümkündür. Məsələn, proqramçı sayta yeni login səhifəsi əlavə etdikdən sonra belə bir commit message yaza bilər:
Add login page
Daha sonra səhvi düzəltdikdə:
Fix login form validation
Bu commit-lər sayəsində layihənin hansı mərhələdə necə dəyişdiyini izləmək mümkündür. Yaxşı commit message qısa və aydın şəkildə hansı dəyişiklik edildiyini bildirməlidir.
Branch nədir?
Branch — layihənin əsas koduna birbaşa təsir etmədən ayrıca dəyişikliklər üzərində işləməyə imkan verən inkişaf qoludur. Məsələn, layihənin əsas branch-i main adlana bilər. Proqramçı yeni login funksiyası hazırlamaq üçün ayrıca branch yarada bilər:
feature/login
Bütün dəyişikliklər əvvəlcə bu branch daxilində həyata keçirilir. Beləliklə, proqramçı yeni funksiyanı hazırlayarkən layihənin əsas işlək versiyasına müdaxilə etmir. Funksiya tamamlandıqdan və yoxlandıqdan sonra dəyişikliklər main branch-ə birləşdirilə bilər. Branch-lər xüsusilə komandaların eyni layihənin müxtəlif hissələri üzərində paralel işləməsinə imkan verir.
Merge nədir?
Merge bir branch-də edilən dəyişikliklərin başqa branch-ə birləşdirilməsi prosesidir.
Məsələn:
main
↑
feature/login
Login funksiyası feature/login branch-ində hazırlanıb tamamlandıqdan sonra həmin dəyişikliklər main branch-ə merge edilə bilər. Bəzən iki branch-də eyni kod hissəsi fərqli formada dəyişdirilir. Bu zaman merge conflict yarana bilər. Proqramçı conflict-i yoxlamalı və hansı kodun saxlanacağına qərar verməlidir.
Pull Request nədir?
Pull Request və ya qısaca PR — bir branch-də edilən dəyişikliklərin başqa branch-ə birləşdirilməsini təklif edən GitHub funksiyasıdır. Məsələn, proqramçı yeni funksiya hazırladıqdan sonra komandaya belə bir təklif göndərə bilər:
feature/login → main
Pull Request açıldıqdan sonra digər proqramçılar dəyişikliklərə baxa, şərh yaza, düzəliş tələb edə və kodu təsdiqləyə bilərlər. Kod yoxlandıqdan sonra Pull Request merge edilərək dəyişikliklər əsas layihəyə əlavə olunur. Bu proses Code Review üçün xüsusilə vacibdir.
Clone nədir?
Clone GitHub-dakı repository-nin tam surətinin kompüterə köçürülməsidir.
Məsələn:
git clone https://github.com/username/project.git
Bu əmrdən sonra repository-dəki layihə faylları və Git tarixçəsi lokal kompüterə yüklənir. Proqramçı daha sonra həmin layihə üzərində kompüterində işləyə bilər. Clone xüsusilə mövcud layihəyə qoşulduqda və ya açıq mənbəli repository ilə işləməyə başladıqda istifadə olunur.
Fork nədir?
Fork başqa istifadəçiyə və ya təşkilata məxsus repository-nin öz GitHub hesabınız daxilində ayrıca surətinin yaradılmasıdır. Fork xüsusilə açıq mənbəli layihələrdə geniş istifadə olunur. Məsələn, proqramçı başqa şəxsin layihəsinə dəyişiklik etmək istəyir, amma orijinal repository-yə birbaşa yazma icazəsi yoxdur. Bu halda repository-ni fork edir, dəyişiklikləri öz surətində hazırlayır və daha sonra orijinal layihəyə Pull Request göndərə bilər. Clone və Fork buna görə fərqli anlayışlardır. Clone repository-ni kompüterinizə köçürür. Fork repository-nin GitHub üzərində sizin hesabınıza bağlı ayrıca versiyasını yaradır.
Push və Pull nədir?
Git və GitHub ilə işləyərkən ən çox qarşılaşılan əmrlərdən ikisi Push və Pull-dur. Push lokal kompüterdə edilmiş commit-ləri remote repository-yə göndərir.
Məsələn:
git push
Pull isə remote repository-də olan yeni dəyişiklikləri lokal layihəyə gətirir.
git pull
Komanda şəklində işləyərkən bu əməliyyatlar xüsusi əhəmiyyət daşıyır. Çünki müxtəlif proqramçılar eyni repository üzərində dəyişiklik edə bilirlər.
README faylı nədir?
README adətən repository-nin əsas məlumatlandırıcı sənədidir. GitHub repository-sində çox vaxt README.md adlı fayl yerləşdirilir.
README daxilində aşağıdakı məlumatlar ola bilər:
- layihənin adı;
- layihənin məqsədi;
- istifadə olunan texnologiyalar;
- layihənin quraşdırılması;
- istifadə qaydası;
- ekran görüntüləri;
- müəllif məlumatları;
- layihəyə töhfə vermək qaydaları.
Portfolio üçün GitHub layihəsi paylaşarkən yaxşı hazırlanmış README layihənin daha peşəkar görünməsinə kömək edir.
.gitignore nədir?
.gitignore Git tərəfindən izlənməməli olan fayl və qovluqları müəyyən edən xüsusi fayldır. Məsələn, layihədə bəzi lokal konfiqurasiya fayllarının, böyük dependency qovluqlarının və ya müvəqqəti faylların repository-yə göndərilməsi lazım olmaya bilər.
.gitignore daxilində həmin faylları qeyd etməklə Git-in onları izləməsinin qarşısını almaq mümkündür. Həmçinin API key, şifrə və digər məxfi məlumatların public GitHub repository-sinə göndərilməməsinə xüsusi diqqət yetirmək lazımdır.
GitHub proqramçılar üçün niyə vacibdir?
GitHub proqramçının yalnız kodunu saxladığı yer deyil, eyni zamanda real layihələrlə işləmə bacarıqlarını göstərə bildiyi platformadır. İşə qəbul zamanı proqramçının GitHub profilindəki layihələr onun praktiki təcrübəsi haqqında əlavə məlumat verə bilər. Məsələn, GitHub profili vasitəsilə aşağıdakıları göstərmək mümkündür:
- hazırlanan şəxsi layihələr;
- istifadə olunan proqramlaşdırma dilləri;
- açıq mənbəli layihələrə töhfələr;
- kod strukturu;
- commit tarixçəsi;
- layihə sənədləşdirməsi.
Bu səbəbdən proqramlaşdırma öyrənərkən yalnız layihə hazırlamaq deyil, həmin layihələri düzgün repository strukturu ilə GitHub-da təqdim etmək də faydalıdır.
GitHub komanda işində necə istifadə olunur?
Real proqram təminatı layihələrində bir neçə proqramçı eyni kod bazası üzərində işləyə bilər. GitHub bu prosesi daha sistemli təşkil etməyə imkan verir. Məsələn, bir komandada Frontend proqramçı istifadəçi interfeysi üzərində, Backend proqramçı API üzərində, başqa proqramçı isə autentifikasiya sistemi üzərində işləyə bilər. Hər proqramçı ayrıca branch yarada, dəyişikliklərini commit edə və Pull Request vasitəsilə əsas layihəyə təqdim edə bilər. Digər komanda üzvləri həmin dəyişiklikləri Code Review prosesində yoxladıqdan sonra kod əsas branch-ə merge edilə bilər. Bu yanaşma dəyişikliklərin nəzarətli şəkildə həyata keçirilməsinə və layihə tarixçəsinin saxlanılmasına kömək edir.
GitHub və Debugging arasında hansı əlaqə var?
GitHub birbaşa Debugging aləti olmasa da, proqramdakı problemlərin araşdırılması zamanı Git tarixçəsi faydalı ola bilər. Commit tarixçəsinə baxaraq müəyyən xətanın hansı dəyişiklikdən sonra yarandığını araşdırmaq mümkündür. Komandalar həmçinin GitHub Issues vasitəsilə aşkar edilmiş problemləri qeyd edə və onların həlli prosesini izləyə bilərlər. Beləliklə, versiya idarəetməsi və Debugging proqram təminatının inkişaf prosesində bir-birini tamamlayan praktikalar kimi istifadə olunur.
GitHub Actions nədir?
GitHub Actions repository daxilində müxtəlif proqramlaşdırma və DevOps proseslərini avtomatlaşdırmağa imkan verən GitHub funksiyasıdır.
Məsələn, yeni kod GitHub-a göndərildikdə avtomatik olaraq:
- testlər başladılır;
- kod yoxlanılır;
- layihə build olunur;
- müəyyən hallarda tətbiq serverə yerləşdirilir.
Bu yanaşmalar Continuous Integration və Continuous Deployment — CI/CD proseslərinin qurulmasında istifadə oluna bilər. Başlanğıc səviyyədə GitHub öyrənən şəxsin ilk növbədə repository, commit, branch, push, pull və Pull Request anlayışlarını mənimsəməsi daha vacibdir.
GitHub öyrənməyə necə başlamaq olar?
GitHub öyrənmək üçün əvvəlcə Git-in əsas məntiqini başa düşmək faydalıdır. Başlanğıc üçün aşağıdakı ardıcıllıq kifayətdir: Git repository yaradın, ilk faylları əlavə edin, commit hazırlayın, GitHub-da remote repository yaradın və layihəni push edin. Daha sonra branch yaratmaq, dəyişiklikləri merge etmək, Pull Request açmaq, repository clone etmək və komanda ilə işləmək kimi mövzulara keçmək mümkündür. Ən yaxşı öyrənmə üsullarından biri hazırladığınız real proqramlaşdırma layihələrini GitHub vasitəsilə idarə etməkdir. Frontend, Backend və Full-Stack istiqamətlərində inkişaf edən proqramçılar üçün Git və GitHub ilə işləmək müasir proqram təminatı hazırlama prosesinin vacib hissələrindən biridir.
Əgər Git, GitHub və digər müasir proqramlaşdırma alətlərini real layihələr üzərində öyrənmək istəyirsinizsə, JET Academy-nin Frontend, Python Backend, Java Backend və Full-Stack Proqramlaşdırma təlimləri ilə tanış ola bilərsiniz.
