Git və GitHub əsasları
Git versiya nəzarəti alətidir: layihənin zaman içində anlıq görüntülərini qeyd edir ki, nəyin dəyişdiyini görə, səhvləri geri ala və başqaları ilə yan-yana işləyə biləsən. GitHub isə Git repozitoriyalarını onlayn saxlayan vebsaytdır — kursun məşq tətbiqi orada yerləşir və CI testlərini orada işlədir. Bu səhifə kursun artıq istifadə etdiyi bir neçə əmri izah edir ki, onlar sehr kimi görünməsin.
Repozitoriyalar — clone və init
Bölmə: “Repozitoriyalar — clone və init”Repozitoriya (“repo”) Git-in izlədiyi layihə qovluğudur. Onu iki yolla əldə edirsən:
# Mövcud GitHub repo-sunu maşınına kopyala — kurs tətbiq üçün bunu edirgit clone https://github.com/TesterBaku/testmarket-lab.git
# Ya da artıq sahib olduğun qovluğu yeni repo-ya çevirgit initgit clone artıq Modul 2 və Modul 12-də TestMarket Lab-ı yükləmək üçün işlətdiyindir.
Üç sahə: working tree → staging → commit
Bölmə: “Üç sahə: working tree → staging → commit”Bu, əsas zehni modeldir. Dəyişiklik üç yerdən keçir:
- Working tree — fayllarının diskdə hazırkı vəziyyəti (redaktə edilib, amma hələ qeyd olunmayıb).
- Staging sahəsi (“index”) — növbəti anlıq görüntüyə getməsi üçün işarələdiyin dəyişikliklər.
- Commit tarixçəsi — daimi anlıq görüntülər, hər biri bir mesajla.
git status # nə dəyişib və nə staged-dirgit add . # BÜTÜN dəyişiklikləri stage et (ya da: git add yol/fayl)git commit -m "Add Playwright CI workflow" # anlıq görüntü qeyd etHəmin git add . və git commit -m "…" sətirləri məhz Modul 12-nin CI workflow-unu saxlamaq üçün işlətdiyidir. -m-dən sonrakı mesaj bir sətirdə nəyin və niyə dəyişdiyini deməlidir.
Branch-lar
Bölmə: “Branch-lar”Branch müstəqil iş xəttidir. Branch yaradırsan, üzərində sərbəst commit edirsən və hazır olanda onu geri birləşdirirsən — əsas xətti (adətən main adlanır) pozmadan.
git branch feature/login-tests # branch yaratgit switch feature/login-tests # ona keç (köhnə sintaksis: git checkout)git switch -c feature/login-tests # bir addımda yarat VƏ keçBranch-lar ucuzdur və işləməyin normal yoludur: hər funksiya və ya düzəliş üçün bir branch.
Remote-lar — push və pull
Bölmə: “Remote-lar — push və pull”Remote repo-nun başqa yerdə (GitHub-da) saxlanılan nüsxəsidir. Standart remote origin adlanır.
git push origin main # commit-lərini GitHub-a yüklə (Modul 12 bununla bitir)git pull # başqalarının push etdiyi commit-ləri yükləgit remote -v # bu repo-nun işarələdiyi remote URL-ləri göstərgit push CI-ı işə salan şeydir: Modul 12-də workflow-un hər push-da işləyir, çünki GitHub yeni commit-lərin gəldiyini görür.
Pull request-lər
Bölmə: “Pull request-lər”Pull request (PR) Git əmri deyil, GitHub funksiyasıdır. Branch-ı push edirsən, sonra onu main-ə birləşdirməyi xahiş edən PR açırsan. PR komanda yoldaşlarının diff-i nəzərdən keçirdiyi və heç nə birləşmədən əvvəl CI-ın keçdi/keçmədi məlumatı verdiyi yerdir. Modul 13-ün CI-ı məhz buna görə hər push və pull request-də işləyir — pozulmuş kod main-ə çatmır.
.gitignore — Git-in heç vaxt izləməməli olduğu fayllar
Bölmə: “.gitignore — Git-in heç vaxt izləməməli olduğu fayllar”.gitignore faylı Git-in nəzərə almamalı olduğu yolları sadalayır. Bu kursda iki giriş vacibdir:
node_modules/ # yüklənmiş asılılıqlar — nəhəng və `npm install` ilə bərpa olunanauth/ # saxlanılan login sessiyaları (storageState) — real sessiya cookie-lərinode_modules/istisna edilir, çünki o nəhəngdir və hər kəs onupackage.json-dannpm installilə yenidən yarada bilər.auth/istisna edilir, çünki Playwright-instorageStatefaylları canlı sessiya cookie-ləri saxlayır — onları commit etmək kimlik məlumatlarını sızdırardı. Modul 13 bunu yoxlama maddəsinə çevirir: “auth/.gitignore-dadır.”
Əsas qayda: heç vaxt sirləri, kimlik məlumatlarını və ya build-in yenidən yarada biləcəyi heç nəyi commit etmə.
Bunların hamısı kursda necə uyğunlaşır
Bölmə: “Bunların hamısı kursda necə uyğunlaşır”| Əmr | Harada istifadə edirsən |
|---|---|
git clone …testmarket-lab.git | Modul 2 və 12 — məşq tətbiqini al |
git add . → git commit -m "…" | Modul 12 — CI workflow-unu saxla |
git push origin main | Modul 12 — yüklə, bu da CI-ı işə salır |
| push / pull request | Modul 12 və 13 — CI nəyin üzərində işləyir |
.gitignore (auth/, node_modules/) | Modul 13 — sessiyaları və asılılıqları repo-dan kənarda saxla |
Məşq — əmrlərin nə etdiyini gör
Bölmə: “Məşq — əmrlərin nə etdiyini gör”Bu səhifə əmrləri izah edir; Learn Git Branching isə onları izləməyə imkan verir. Bu, pulsuz və açıq mənbəli git sandbox-udur — sən yazdıqca commit qrafikini çəkir: git commit, git branch, git merge işlədirsən və node-larla oxlar gözünün qarşısında hərəkət edir. Qrafikin bir neçə dəfə yenidən çəkildiyini görəndən sonra branch-ları və merge-ləri başında saxlamaq xeyli asanlaşır.
Introduction Sequence ilə başla (commit-lər → branching → merging → rebasing) — remote-lardan başqa yuxarıdakıların hamısını əhatə edir. Remote səviyyələri isə clone, push, pull və fetch-i öyrədir.
Orada yazdığın heç nə real repozitoriyaya toxunmur — bu, simulyasiyadır, ona görə sərbəst təcrübə et və nəyisə sındıranda sıfırla.
Sürətli istinad
Bölmə: “Sürətli istinad”git clone <url> remote repo-nu yerli kopyalagit init yeni repo başlatgit status nə dəyişib / nə staged-dirgit add . bütün dəyişiklikləri stage etgit commit -m "msg" anlıq görüntü qeyd etgit switch -c <branch> branch yarat + keçgit push origin main commit-ləri yüklə (CI-ı işə salır)git pull başqalarının commit-lərini yükləgit remote -v remote URL-ləri göstər.gitignore Git-in izləməməli olduğu yollar