Əsas məzmuna keçin

Git

  • Paylanmış Versiya Nəzarət Sistemi: Git proqram təminatının inkişafı zamanı mənbə kodundakı dəyişiklikləri izləyən paylanmış versiya nəzarət sistemidir.
  • Snapshot Əsaslı: Git məlumatları zaman keçdikcə layihənin snapshot-ları kimi saxlayır, fayllar arasındakı fərqləri deyil.
  • Lokal Əməliyyatlar: Git əməliyyatlarının əksəriyyəti lokal səviyyədə aparılır, bu da onu sürətli edir və offline işə imkan verir.
  • Məlumat Bütövlüyü: Git məlumat bütövlüyünü təmin etmək üçün checksum-lardan istifadə edir.
  • Hazırlama Sahəsi: Git-də commit-ləri tamamlamadan əvvəl onları formatlaşdırmağa və nəzərdən keçirməyə imkan verən hazırlama sahəsi (və ya indeks) var.
  • Budaqlama Modeli: Git-in budaqlama modeli yüngüldür və asan kontekst dəyişikliklərinə imkan verir.

Əsas Anlayışlar​

Git İş Axını​

  • İş Qovluğu: Faylları dəyişdirdiyiniz yer
  • Hazırlama Sahəsi (İndeks): Commit üçün dəyişiklikləri hazırladığınız yer
  • Lokal Anbar: Commit-lərin lokal şəkildə saxlandığı yer
  • Uzaq Anbar: Commit-lərin serverdə saxlandığı yer

Git Obyektləri​

  • Blob: Fayl məlumatlarını saxlayır
  • Tree: Qovluq strukturunu təmsil edir
  • Commit: Tree-yə işarə edir və metadata ehtiva edir (müəllif, vaxt, mesaj)
  • Tag: Konkret commit-ə işarə edir (adətən relizlər üçün istifadə olunur)

Git vs Digər Versiya Nəzarət Sistemləri​

XüsusiyyətGitSVNMercurial
NövPaylanmışMərkəzləşdirilmişPaylanmış
SürətSürətliYavaşSürətli
Offline İşTam funksionallıqMəhdudTam funksionallıq
BudaqlamaYüngülAğırYüngül
Öyrənmə ƏyrisiDaha dikAsanlaşdırılmışOrta
SaxlamaSəmərəli sıxışdırmaAz səmərəliSəmərəli
PopulyarlıqƏn populyarAzalırAz populyar

Ümumi Git Əmrləri​

Əsas Əmrlər​

# Yeni Git anbarını inisializasiya et
git init

# Mövcud anbarı klonla
git clone <repository-url>

# İş qovluğunun statusunu yoxla
git status

# Faylları hazırlama sahəsinə əlavə et
git add <file-name>
git add . # Bütün faylları əlavə et

# Dəyişiklikləri commit et
git commit -m "Commit mesajı"

# Commit tarixini göstər
git log

Budaqlama və Birləşdirmə​

# Yeni budaq yarat
git branch <branch-name>

# Budağa keç
git checkout <branch-name>

# Yeni budaq yarat və ona keç
git checkout -b <branch-name>

# Budağı cari budaqla birləşdir
git merge <branch-name>

# Budağı sil
git branch -d <branch-name>

Uzaq Əməliyyatlar​

# Uzaq anbar əlavə et
git remote add <name> <url>

# Uzaqdan dəyişiklikləri gətir
git fetch <remote>

# Uzaqdan dəyişiklikləri çək (fetch + merge)
git pull <remote> <branch>

# Dəyişiklikləri uzağa göndər
git push <remote> <branch>

# Uzaq anbarları göstər
git remote -v

Geri Dönmə və Sıfırlama​

# Son commit-i geri al (dəyişikliklər saxlanılır)
git reset --soft HEAD~1

# Son commit-i geri al (staging area təmizlənir)
git reset --mixed HEAD~1

# Son commit-i geri al (bütün dəyişikliklər itirilir)
git reset --hard HEAD~1

# Faylı əvvəlki vəziyyətinə qaytar
git checkout -- <file-name>

# Commit-i geri al (yeni commit yaradır)
git revert <commit-hash>

Git İş Axını Strategiyaları​

Gitflow​

  • Main branch: Produksiya üçün hazır kod
  • Develop branch: Növbəti reliz üçün inkişaf
  • Feature branches: Yeni xüsusiyyətlərin inkişafı
  • Release branches: Reliz hazırlığı
  • Hotfix branches: Produksiyadakı kritik problemlər

GitHub Flow​

  • Sadələşdirilmiş model
  • Sadəcə main branch və feature branch-lər
  • Pull request vasitəsilə kod nəzarəti

İstifadə Halları​

  • Mənbə Kod İdarəetməsi: Təkmil versiyalama və dəyişiklik izləmə
  • Kollaborasiya: Komanda üzvləri arasında koordinasiya
  • Backup və Ehtiyat: Kodu çoxlu yerlərdə saxlama
  • Sənəd İdarəetməsi: Markdown, konfiqurasiya faylları
  • Deployment: CI/CD pipeline-ların bir hissəsi

Ən Yaxşı Təcrübələr​

  • Commit mesajlarını aydın və təsviri yazın
  • Kiçik, atomik commit-lər edin
  • Mütəmadi olaraq push edin
  • .gitignore faylından istifadə edin
  • Branch-ları təmiz saxlayın
  • Code review prosesini tətbiq edin
  • Tag-lardan relizlər üçün istifadə edin
  • Backup strategiyası hazırlayın
  • Git hook-larından istifadə edin