Əsas məzmuna keçid
SaytPro
Bizə yazın

Texnologiyalar

Git

Git: kodda edilən hər dəyişikliyi tarixçə şəklində qeyd edən versiya nəzarəti (version control) sistemidir. 2005-ci ildə Linus Torvalds tərəfindən yaradılıb və bu gün dünyada ən geniş yayılmış versiya nəzarəti alətidir.

YaradıcıLinus Torvalds
İlk buraxılış2005
LisenziyaGPL-2.0
Rəsmi saytgit-scm.com

Git nədir?

Git-i belə təsəvvür edin: bir sənəd üzərində işləyirsiniz və hər mühüm mərhələdə onun surətini ayrıca qovluğa yığırsınız ('v1', 'v2', 'son', 'ən son'). Git bunu avtomatik və nizamlı şəkildə edir: kodda edilən hər dəyişiklik 'commit' (yadda saxlanmış versiya) kimi qeyd olunur, kim, nə vaxt və nəyi dəyişdiyi tarixçədə qalır. İstənilən anda layihəni keçmiş vəziyyətinə qaytarmaq mümkündür.

Git 2005-ci ildə Linux əməliyyat sisteminin yaradıcısı Linus Torvalds tərəfindən hazırlanıb və hazırda böyük açıq mənbə icması tərəfindən inkişaf etdirilir. Pulsuz və açıq mənbəlidir (GPL-2.0 lisenziyası). Fərdi proqramçıdan tutmuş dünyanın ən böyük texnologiya şirkətlərinə qədər demək olar ki, bütün peşəkar proqram layihələri Git üzərində qurulur.

Komanda işində Git-in əsas gücü 'branch' (budaq) və 'merge' (birləşdirmə) mexanizmindədir. Hər proqramçı əsas koddan ayrılan öz budağında işləyir (məsələn, biri yeni səhifə hazırlayır, digəri xətanı düzəldir) və heç kim digərinin işini pozmur. İş bitəndə budaqlar əsas koda birləşdirilir. Bu, eyni faylın üstündə e-poçtla 'son_versiya_final2.zip' göndərmək xaosunu tamamilə aradan qaldırır.

Git-i GitHub, GitLab kimi platformalarla qarışdırmamaq lazımdır: Git kompüterdə işləyən alətdir, GitHub isə Git layihələrini internetdə saxlamaq və paylaşmaq üçün platformadır. Sadə müqayisə ilə: Git fotoaparatdır, GitHub isə şəkillərin yükləndiyi albom saytıdır. Layihənin kodu həm proqramçının kompüterində, həm də uzaq serverdə saxlanıldığı üçün kod itməsi riski minimuma enir.

Biznesiniz üçün nə deməkdir?

Sayt sahibi üçün Git sığorta deməkdir. Sayta edilən hər yenilik tarixçədə qalır: yeni funksiya problem yaradarsa, sayt dəqiqələr içində əvvəlki işlək versiyaya qaytarıla bilər. Həmçinin kod bir nəfərin kompüterində 'ilişib qalmır': sabah başqa proqramçı və ya studiya layihəni tam tarixçəsi ilə təhvil ala bilir.

SaytPro bundan necə istifadə edir?

SaytPro bütün layihələri, Next.js frontend-lərdən Django backend-lərə qədər, Git repozitoriyalarında saxlayır. Hər dəyişiklik commit-lərlə izlənir, yeni funksiyalar ayrıca branch-larda hazırlanıb yoxlanıldıqdan sonra əsas koda birləşdirilir. Canlı serverə yerləşdirmə (deploy) də Git üzərindən avtomatlaşdırılıb: kod təsdiqlənəndə server yeni versiyanı Git-dən çəkir, problem olarsa əvvəlki versiyaya qayıtmaq mümkündür.

Bu texnologiya ilə qurduğumuz xidmətlər

Tez-tez verilən suallar

Git: kodda edilən dəyişiklikləri tarixçə şəklində qeyd edən versiya nəzarəti sistemidir. Hər dəyişiklik kim, nə vaxt və nəyi dəyişdiyi məlumatı ilə saxlanılır və istənilən anda əvvəlki versiyaya qayıtmaq mümkündür. Kod itməsindən qorunmaq və komanda işini nizamlamaq üçün istifadə olunur.

Git: kompüterdə işləyən versiya nəzarəti alətidir, GitHub isə Git layihələrini internetdə saxlamaq və paylaşmaq üçün platformadır. Git olmadan GitHub-dan istifadə etmək mümkün deyil, amma Git GitHub-sız da tam işləyir. GitLab və Bitbucket də GitHub-a bənzər alternativ platformalardır.

Bəli, Git tamamilə pulsuzdur və açıq mənbəlidir: GPL-2.0 lisenziyası ilə yayılır. Kommersiya layihələrində də heç bir ödəniş tələb olunmur. GitHub kimi platformaların isə pulsuz planları var, əlavə imkanlar (məsələn, böyük komandalar üçün idarəetmə alətləri) ödənişli ola bilər.

Versiya nəzarəti: faylların bütün dəyişiklik tarixçəsini saxlayan sistemdir. Sənədin 'v1', 'v2', 'final' surətlərini əl ilə yığmaq əvəzinə, sistem hər versiyanı avtomatik və nizamlı qeyd edir. Bu, həm səhvləri geri qaytarmağa, həm də bir neçə nəfərin eyni layihədə paralel işləməsinə imkan verir.

Branch: əsas koddan ayrılan paralel iş xəttidir. Proqramçı yeni funksiyanı ayrıca budaqda hazırlayır, əsas kod isə toxunulmaz və işlək qalır. İş bitib yoxlanıldıqdan sonra budaq 'merge' (birləşdirmə) əməliyyatı ilə əsas koda qatılır. Beləliklə, yarımçıq iş heç vaxt canlı sayta düşmür.

SVN (Subversion) daha köhnə, mərkəzləşdirilmiş sistemdir: bütün tarixçə tək serverdə saxlanılır. Git isə paylanmışdır: hər proqramçının kompüterində tam tarixçə olur, internetsiz də işləmək mümkündür və server sıradan çıxsa kod itmir. Buna görə müasir layihələrin mütləq əksəriyyəti Git-ə keçib; SVN yalnız bəzi köhnə korporativ sistemlərdə qalır.

Gündəlik istifadə üçün lazım olan əsas əmrlər (commit, push, pull, branch) bir neçə günə öyrənilir. Daha mürəkkəb ssenarilər (konfliktlərin həlli, tarixçənin yenidən qurulması) təcrübə tələb edir. Sayt sifariş edən biznes sahibinin Git öyrənməsinə isə ehtiyac yoxdur: bu, proqramçının alətidir.

Praktik olaraq üç şey deməkdir: birincisi, saytınızın kodu itmir, tarixçə həm proqramçının kompüterində, həm uzaq serverdə saxlanılır. İkincisi, uğursuz yenilik dəqiqələr içində geri qaytarıla bilər. Üçüncüsü, podratçı dəyişsəniz, yeni komanda layihəni tam tarixçəsi ilə təhvil alır: sıfırdan başlamağa ehtiyac qalmır.

Git istifadə olunubsa: bəli. Hər dəyişiklik commit kimi qeyd olunduğu üçün layihəni istənilən əvvəlki vəziyyətə qaytarmaq mümkündür. Məsələn, yeni funksiya saytda problem yaradarsa, proqramçı son işlək versiyanı bərpa edir və sayt normal işinə davam edir: bu, adətən dəqiqələr çəkir.

SaytPro bütün layihə kodlarını Git repozitoriyalarında saxlayır: yeni funksiyalar ayrıca branch-larda hazırlanır, yoxlanılır və sonra əsas koda birləşdirilir. Canlı serverə yerləşdirmə də Git üzərindən aparılır, ona görə problem yarandıqda əvvəlki işlək versiyaya qayıtmaq mümkündür. Müştəri istəsə, layihənin repozitoriyası ona tam tarixçəsi ilə təhvil verilir.

Git-i 2005-ci ildə Linux əməliyyat sisteminin yaradıcısı Linus Torvalds hazırlayıb: məqsəd Linux nüvəsinin inkişafını idarə etmək idi. Hazırda Git böyük açıq mənbə icması tərəfindən inkişaf etdirilir və dünyada ən geniş istifadə olunan versiya nəzarəti sistemidir.

Bu texnologiya adətən bunlarla birlikdə işləyir.

Kodun saxlanması, versiya tarixçəsi və komanda əməkdaşlığı üçün dünyanın ən böyük platforması.

  • Alət

Tətbiqləri bütün asılılıqları ilə birlikdə konteynerlərdə qablaşdırıb istənilən serverdə eyni cür işlədən platforma.

  • İnfrastruktur

Saytınız üçün ayrılmış resurslu, tam nəzarətli virtual server.

  • İnfrastruktur