Kommit etmək — bu nədir, formatlaşma qaydaları və Git ilə iş

Müəllif: IT Sectr Dərc olunub: 2026-07-31 Oxuma vaxtı: 6 dəq

Kommit etmək — bu, Git versiyaya nəzarət sistemində dəyişikliklərin qeydə alınması aksiyasıdır və layihə tarixində saxlama nöqtəsi yaradır. Hər bir kommit hash, müəllif, tarix və dəyişikliklərin təsvirini əhatə edir. GitHub Octoverse 2024 məlumatlarına görə, dünyada hər gün 50 milyondan çox kommit yaradılır. Commit — versiyalaşdırma ilə işin əsas vahidi olub, müasir proqram təminatının inkişafını təsəvvür etmək mümkün deyil.

Başlıca məqamlar

  • Kommit etmək — dəyişiklikləri Git-də təsvirlə qeyd etmək
  • Hər bir kommit unikal hash, müəllif, tarix və mesaja malikdir
  • Atomarlıq — hər bir kommit bir məntiqi dəyişiklik ehtiva edir
  • Kommit mesajı dəyişikliyin nə üçün edildiyi sualına cavab verməlidir
  • Kommitlər git amend və rebase vasitəsilə əlavə edilə, ləğv edilə və birləşdirilə bilər

Git-də kommit nədir

Git-də kommit — bu, layihə fayllarının vəziyyətini müəyyən bir zamanda saxlayan obyektdir. Hər bir kommit bütün izlənən faylların snapshotını, valideyn kommitinə istinadı və metadata məlumatlarını ehtiva edir. Digər versiyaya nəzarət sistemlərindən fərqli olaraq, Git content-addressable storage istifadə edir — hər bir obyekt məzmununun SHA-1 heşi ilə müəyyənləşdirilir.

Proqramçı dəyişiklikləri kommit etdikdə, Git commit obyekti yaradır: tree obyekti (fayl strukturu), valideyn kommit heşi, müəllif, kommitter, tarix və mesaj. Bu obyekt dəyişməzdir — kommit yaradıldıqdan sonra onun heşini dəyişmədən modifikasiya etmək mümkün deyil. Məhz dəyişməzlik layihə tarixinin bütövlüyünə zəmanət verir.

bash
# Dəyişiklikləri hazırla və kommit et
git add index.html style.css
git commit -m "Fix responsive layout on mobile devices"

# Kommit təfərrüatlarına bax
git log --oneline -3
git show HEAD

# Bütün dəyişiklikləri hazırla və bir addımda kommit et
git commit -a -m "Update dependencies to latest versions"

Kommitlər istiqamətləndirilmiş asiklik qraf (DAG) təşkil edir, burada hər yeni kommit əvvəlkinə istinad edir. Bu, tarix boyu hərəkət etməyə, dəyişiklikləri ləğv etməyə və kod bazasının təkamülünü təhlil etməyə imkan verir. Git DAG strukturunu başa düşmək — kommitlərlə qabaqcıl işin əsasıdır.

Dəyişiklikləri necə düzgün kommit etmək

Git-də kommit prosesi iki mərhələdən ibarətdir: dəyişikliklərin staging area (indeks) əlavə edilməsi və kommitin yaradılması. Staging area proqramçıya işçi kataloqunda çoxlu fayl dəyişdirilsə belə, kommitə hansı dəyişikliklərin daxil olacağını seçməyə imkan verir.

Atomarlıq qaydası — yaxşı kommitin açar prinsipidir. Hər bir kommit bir məntiqi dəyişiklik ehtiva etməlidir. Proqramçı səhvi düzəldir və kodu refaktor edirsə — bunlar iki fərqli kommitdir. Atomar kommitlər kod-review-i, dəyişikliklərin geri qaytarılmasını və tarixin təhlilini asanlaşdırır.

Kommit etməzdən əvvəl yoxlamağa dəyər: kodda debug çıxışı, şərh edilmiş bloklar və ya təsadüfi dəyişikliklər qalıbmı. Bunun üçün git diff --cached əmri istifadə olunur, hansı ki, kommitə nəyin daxil olacağını göstərir. git status vasitəsilə əlavə yoxlama staging area-dakı faylların siyahısını göstərir.

  • Dəyişiklikləri yoxla — git diff --cached kommitə nəyin daxil olacağını göstərir
  • Keyfiyyəti yoxla — kod kommitdən əvvəl linter və testlərdən keçməlidir
  • Mesaj yaz — dəyişiklik məqsədinin başa düşülən təsviri
  • Staged-i yoxla — git status fayl siyahısını təsdiq edir

Kommit mesajlarının yazılma qaydaları

Kommit mesajı — gələcək proqramçılar üçün dəyişiklik sənədləşdirməsidir. Yaxşı mesaj suallara cavab verir: nə dəyişdirildi və niyə. Conventional Commits konvensiyası (Angular team, 2016) bir çox layihə üçün standart halına gəlib və formatı müəyyənləşdirir: tip(sahə): təsvir.

TipTəyinatNümunə
featyeni funksionallıqfeat(api): add user registration endpoint
fixsəhvin düzəldilməsifix(auth): resolve token refresh issue
refactordavranışı dəyişmədən refaktoringrefactor(core): extract payment validator
docssənədləşdirmədocs(readme): update installation guide
testtestlərin əlavə edilməsitest(cart): add unit tests for checkout

Yaxşı kommit mesajı başlıqdan (50 simvola qədər) və gövdədən (isteğə bağlı, sətir başına 72 simvola qədər) ibarətdir. Başlıq əmr şəklində yazılır: “Add” yox, “Added” və ya “Adds”. Capitalization və başlıq sonunda nöqtə qoyulmur — bu beynəlxalq Git razılaşmasıdır.

Pis mesaj: “fix things” və ya “update” — məlumat daşımır. Bir aydan sonra proqramçı nəyin dəyişdirildiyini və niyə olduğunu başa düşməyəcək. Yaxşı mesaj: “fix(payment): handle timeout in stripe callback” — dərhal harada və nəyin düzəldildiyi aydındır.

Kommitlərdə tez-tez yol verilən səhvlər

Proqramçılar, xüsusən yeni başlayanlar, kommitlərdə tez-tez tipik səhvlərə yol verirlər. Ən geniş yayılmışı — çox böyük kommit, içərisində onlarla dəyişiklik qarışdırılıb. Belə kommiti qismən geri qaytarmaq mümkün deyil, kod-review isə əzaba çevrilir.

Tezliyə görə ikinci səhv — pis kommit mesajı. “fix”, “update”, “changes” və ya “wip” tipli mesajlar gələcək proqramçılara kontekst vermir. Altı aydan sonra heç kim nəyin dəqiq düzəldildiyini xatırlamayacaq. Qayda sadədir: təsəvvür edin ki, bir ildən sonra tarixə baxırsınız və konkret dəyişikliyi tapmağa çalışırsınız.

Üçüncü səhv — kompilyasiya olunmayan və ya işləməyən kodun kommiti. Kommitdən sonra kod ən azından kompilyasiya olunmalıdır. Qırılmayan build — ümumi budağa edilən hər kommit üçün əsas tələbdir. Bunun üçün kommitdən əvvəl qurma və testlər işə salınır.

Dördüncü səhv — məxfi məlumatların kommiti. API açarları, şifrələr və tokenlər Git tarixçəsinə düşməməlidir. Sirr artıq kommit edilibsə, onu sadəcə yeni kommitdə silmək kifayət deyil — bütün tarixçədən git filter-branch və ya BFG Repo-Cleaner vasitəsilə silmək lazımdır.

Kommitlərlə işdə qabaqcıl texnikalar

Git kommit tarixçəsini idarə etmək üçün alətlər təqdim edir. Ən faydalılarından biri git commit --amend — son kommiti yeni dəyişikliklərlə tamamlamağa və ya mesajı düzəltməyə imkan verir. Proqramçı fayl əlavə etməyi unudubsa və ya mesajda səhv edibsə, bu rahatdır.

bash
# Son kommit mesajını düzəlt
git commit --amend -m "fix(auth): correct token validation logic"

# Əskik faylı son kommitə əlavə et
git add missed-file.txt
git commit --amend --no-edit

# Son 3 kommit üçün interaktiv rebase
git rebase -i HEAD~3

Interactive rebase — tarixçəni yenidən yazmaq üçün güclü alətdir. Kommitləri birləşdirməyə (squash), mesajları dəyişməyə (reword), sıranı dəyişməyə (reorder) və kommitləri silməyə (drop) imkan verir. Lakin rebase tarixçəni dəyişir, buna görə yalnız uzaq repozitoriya göndərilməmiş lokal kommitlərə tətbiq edilir.

Kommitlərin ləğvi üçün iki yanaşma var. git revert əvvəlki kommitin dəyişikliklərini ləğv edən yeni kommit yaradır — tarixçəni qoruyan təhlükəsiz üsul. git reset kommitləri tarixçədən silir — kommitlər artıq göndərilibsə təhlükəlidir. Komanda işində nəşr olunmuş kommitləri ləğv etmək üçün yalnız git revert istifadə olunur.

Tez-tez verilən suallar

Git-də kommit etmək nə deməkdir?

Kommit etmək — Git-də dəyişikliklərin saxlama nöqtəsini yaratmaq deməkdir. Kommit nəyin və niyə dəyişdirildiyinin təsviri ilə layihə tarixində faylların cari vəziyyətini qeyd edir. Hər bir kommitin unikal identifikatoru (SHA-1 heşi) var və dəyişikliklərin ayrılmaz zəncirinin bir hissəsidir.

Git-də nə qədər tez-tez kommit etmək lazımdır?

Məntiqi tamamlanmış hər dəyişiklikdən sonra, hətta kiçik olsa belə, kommit etmək tövsiyə olunur. Optimal tezlik — bir tapşırıq və ya düzəliş üçün 1 kommit. Hər 5 dəqiqədən bir kommit etməyə dəyməz, lakin dəyişiklikləri bir neçə gün bir kommit etmədən yığmaq da olmaz.

Atomar kommit nədir?

Atomar kommit bir məntiqi dəyişiklik ehtiva edir — bir tapşırıq, bir səhv düzəlişi və ya bir yeni funksionallıq. Müxtəlif dəyişiklikləri bir kommitdə qarışdırmır. Atomar kommitlərin üstünlükləri: geri qaytarmanın sadəliyi, aydın tarixçə və asan kod-review.

Git-də kommiti necə ləğv etmək olar?

Nəşr olunmuş kommiti ləğv etmək üçün git revert istifadə edin — dəyişiklikləri ləğv edən yeni kommit yaradır. Lokal kommitlər üçün git reset HEAD~1 istifadə edilə bilər, ancaq kommit hələ göndərilməyibsə. git revert — komanda işi üçün təhlükəsiz üsuldur.

Artıq yaradılmış kommiti dəyişmək olarmı?

Bəli, uzaq repozitoriyaya göndərməzdən əvvəl. Son kommiti dəyişmək üçün git commit --amend və ya bir neçə kommiti dəyişmək üçün git rebase -i istifadə edin. Push-dan sonra tarixçəni dəyişmək tövsiyə olunmur — bu, artıq dəyişikliklərini göndərmiş digər proqramçılarda problemlərə səbəb ola bilər.

Xülasə

  • Kommit etmək — dəyişiklikləri Git-də təsvirlə qeyd etmək
  • Atomarlıq — bir kommit = bir məntiqi dəyişiklik
  • Mesaj — Conventional Commits istifadə edin: tip(sahə): təsvir
  • Yoxlama — kod kommitdən əvvəl kompilyasiya olunmalı və testlərdən keçməlidir
  • Təhlükəsizlik — sirləri kommit etməyin, .gitignore istifadə edin
  • Dəyişiklik — son kommit üçün amend, bir neçəsi üçün rebase -i
  • Ləğv — nəşr olunanlar üçün git revert, lokal üçün git reset

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun