Bosh sahifa Wiki Commit

Commit

CommitGit repository ichida saqlangan o‘zgarish nuqtasi. Commit loyiha kodining ma’lum bir vaqtdagi holatini yozib qo‘yadi va keyinchalik shu holatni ko‘rish, solishtirish yoki unga qaytish imkonini beradi.

Commit Git’dagi eng asosiy tushunchalardan biridir. Har bir commit loyiha tarixida alohida iz qoldiradi.

Vazifasi

Commit kod o‘zgarishlarini tartibli saqlash uchun ishlatiladi.

Commit quyidagi vazifalarni bajaradi:

  • fayllardagi o‘zgarishlarni saqlash;
  • loyiha tarixini yuritish;
  • muayyan holatni belgilab qo‘yish;
  • kod o‘zgarishlarini guruhlash;
  • eski holatlarni ko‘rish;
  • xatolik qaysi o‘zgarishda kiritilganini aniqlash;
  • jamoa a’zolari ishini kuzatish;
  • branchlar orasidagi farqlarni ko‘rish;
  • release va deploy jarayonlariga asos yaratish.

Masalan, login sahifasi qo‘shilganda shu o‘zgarish alohida commit sifatida saqlanishi mumkin.

Commit qanday ishlaydi?

Git fayllardagi o‘zgarishlarni kuzatadi. Dasturchi kerakli o‘zgarishlarni staging area’ga qo‘shadi va commit yaratadi. Commit yaratilganda Git shu o‘zgarishlarni repository tarixiga yozadi.

Oddiy jarayon:

  • fayl o‘zgartiriladi;
  • o‘zgarish git status orqali ko‘riladi;
  • kerakli fayllar git add bilan staging area’ga qo‘shiladi;
  • git commit orqali commit yaratiladi;
  • commit Git tarixida saqlanadi.

Commit yaratilgandan keyin u Git tarixining bir qismiga aylanadi.

Commit tarkibi

Har bir commit ichida bir nechta muhim ma’lumotlar saqlanadi.

Commit tarkibida quyidagilar bo‘ladi:

  • o‘zgargan fayllar;
  • commit xabari;
  • commit muallifi;
  • commit yaratilgan vaqt;
  • commit ID;
  • oldingi commitga bog‘lanish;
  • branch bilan bog‘liq ma’lumot;
  • o‘zgarishlar farqi.

Bu ma’lumotlar Git’ga loyiha tarixini tartibli saqlashga yordam beradi.

Commit ID

Commit ID — har bir commitga beriladigan noyob identifikator. Git commitlarni hash qiymati orqali ajratadi.

Commit ID odatda uzun belgilar ketma-ketligidan iborat bo‘ladi.

Misol:

a3f5c91b8e2d4f0a9c7...

Ko‘pincha commit ID’ning qisqartirilgan ko‘rinishi ishlatiladi:

a3f5c91

Commit ID orqali ma’lum bir commitga murojaat qilish mumkin.

Commit message

Commit message — commit nima o‘zgartirganini tushuntiradigan qisqa matn.

Misollar:

  • Add login page;
  • Fix navbar layout;
  • Update user profile API;
  • Remove unused CSS;
  • Add product search filter.

Commit message loyiha tarixini o‘qishni osonlashtiradi. U commitning mazmunini qisqa va tushunarli ifodalaydi.

Staging area

Commit yaratishdan oldin o‘zgarishlar staging area’ga qo‘shiladi. Staging area commitga kiritiladigan o‘zgarishlarni vaqtincha tayyorlab turadi.

Jarayon:

  • fayl o‘zgartiriladi;
  • fayl staging area’ga qo‘shiladi;
  • commit yaratiladi;
  • staging area’dagi o‘zgarishlar commit ichiga yoziladi.

Bu mexanizm dasturchiga bitta commit ichiga aynan qaysi o‘zgarishlar kirishini nazorat qilish imkonini beradi.

Git add va commit

git add o‘zgarishlarni staging area’ga qo‘shadi. git commit esa staging area’dagi o‘zgarishlarni repository tarixiga saqlaydi.

Misol:

git add .

git commit -m "Add contact form"

Bu jarayonda barcha tayyorlangan o‘zgarishlar "Add contact form" xabari bilan commit qilinadi.

Git commit buyrug‘i

Commit yaratish uchun git commit buyrug‘i ishlatiladi.

Keng ishlatiladigan ko‘rinish:

git commit -m "Commit xabari"

Bu yerda -m commit message yozish uchun ishlatiladi.

Masalan:

git commit -m "Fix login validation"

Bu commit login validatsiyasidagi tuzatishni saqlaydi.

Working directory

Working directory — dasturchi hozir ishlayotgan loyiha papkasi. Fayllar avval working directory’da o‘zgartiriladi.

Working directory holatlari:

  • fayl o‘zgarmagan;
  • fayl o‘zgargan;
  • yangi fayl yaratilgan;
  • fayl o‘chirilgan;
  • fayl staging area’ga qo‘shilgan;
  • fayl commit qilingan.

Commit working directory’dagi barcha o‘zgarishlarni emas, faqat staging area’ga qo‘shilgan o‘zgarishlarni saqlaydi.

Commit tarixi

Repositorydagi barcha commitlar Git tarixini hosil qiladi. Commit tarixi orqali loyiha qanday rivojlanganini ko‘rish mumkin.

Commit tarixida quyidagilar ko‘rinadi:

  • kim o‘zgartirish qilgan;
  • qachon o‘zgartirish qilingan;
  • qaysi fayllar o‘zgargan;
  • commit xabari nima bo‘lgan;
  • qaysi branchda commit qilingan;
  • commitlar orasidagi bog‘lanish.

Commit tarixini ko‘rish uchun git log ishlatiladi.

Git log

git logrepository commitlar tarixini ko‘rsatadigan buyruq.

Misol:

git log

Bu buyruq quyidagi ma’lumotlarni chiqaradi:

  • commit ID;
  • muallif;
  • sana;
  • commit message.

Qisqa ko‘rinishda ko‘rish uchun quyidagi shakl ham ishlatiladi:

git log --oneline

Bu commitlarni ixcham ro‘yxat shaklida ko‘rsatadi.

Commit va branch

Commitlar branch ichida ketma-ket joylashadi. Har bir branch o‘z commitlar tarixiga ega bo‘lishi mumkin.

Masalan:

  • main branchda asosiy kod commitlari bo‘ladi;
  • feature/login branchda login funksiyasi commitlari bo‘ladi;
  • feature tugagach, commitlar main branchga merge qilinishi mumkin.

Branch aslida commitlar zanjiridagi ma’lum bir nuqtani ko‘rsatib turadi.

Commit va merge

Merge jarayonida bir branchdagi commitlar boshqa branchga qo‘shiladi. Ayrim holatlarda Git merge commit yaratadi.

Merge commit quyidagi holatlarda yuzaga keladi:

  • ikki branch tarixi birlashtirilganda;
  • Git o‘zgarishlarni alohida commit sifatida saqlaganda;
  • feature branch asosiy branchga qo‘shilganda.

Merge commit branchlar birlashganini repository tarixida ko‘rsatadi.

Commit va pull request

Pull request ichida odatda bir yoki bir nechta commit bo‘ladi. Bu commitlar ma’lum o‘zgarishlar to‘plamini ifodalaydi.

Pull requestda commitlar orqali quyidagilar ko‘riladi:

  • qaysi o‘zgarishlar qilingan;
  • nechta commit bor;
  • har bir commit nima vazifa bajargan;
  • o‘zgarishlar qanday ketma-ketlikda yozilgan;
  • code review qaysi o‘zgarishlarga tegishli.

Pull request merge qilinganda commitlar asosiy branchga qo‘shiladi.

Commit va diff

Diff — commitdagi o‘zgarishlar farqini ko‘rsatadi. Diff orqali qaysi qator qo‘shilgani, o‘chirilgani yoki o‘zgargani ko‘rinadi.

Commit diff quyidagilarni ko‘rsatadi:

  • qo‘shilgan qatorlar;
  • o‘chirilgan qatorlar;
  • o‘zgargan fayllar;
  • eski va yangi kod farqi;
  • matn, konfiguratsiya yoki koddagi o‘zgarishlar.

GitHub’da har bir commitning diff ko‘rinishini web interfeys orqali ko‘rish mumkin.

Commit va revert

Revert — avvalgi commit ta’sirini bekor qiladigan yangi commit yaratish jarayoni.

Misol:

git revert commit_id

Revert eski commitni tarixdan o‘chirib tashlamaydi. U o‘sha commitdagi o‘zgarishlarga teskari o‘zgarish kiritadi va yangi commit yaratadi.

Revert repository tarixini saqlagan holda o‘zgarishni bekor qilish uchun ishlatiladi.

Commit va reset

ResetGit tarixidagi holatni o‘zgartirish uchun ishlatiladi. Reset commitlar, staging area yoki working directory holatiga ta’sir qilishi mumkin.

Reset turlari:

  • --soft — commit bekor bo‘ladi, o‘zgarishlar staging area’da qoladi;
  • --mixed — commit bekor bo‘ladi, o‘zgarishlar working directory’da qoladi;
  • --hard — commit va o‘zgarishlar bekor qilinadi.

Reset Git tarixini o‘zgartirishi mumkin.

Commit va tag

Tag ma’lum bir commitga nom berish uchun ishlatiladi. Release versiyalar ko‘pincha commitga tag qo‘yish orqali belgilanadi.

Tag misollari:

  • v1.0.0;
  • v1.2.3;
  • beta;
  • stable;
  • release-2026-07.

Masalan, v1.0.0 tagi loyiha birinchi barqaror versiyasi qaysi commitda chiqqanini bildirishi mumkin.

Commit va HEAD

HEADGit’da joriy branchning hozirgi commitini ko‘rsatadigan maxsus ko‘rsatkich. Dasturchi qaysi branchda ishlayotgan bo‘lsa, HEAD odatda shu branchning oxirgi commitiga ishora qiladi.

HEAD quyidagi holatlarda ishlatiladi:

  • oxirgi commitga murojaat qilish;
  • eski commitga o‘tish;
  • reset qilish;
  • diff ko‘rish;
  • Git tarixida harakatlanish.

Masalan, HEAD~1 oxirgi commitdan oldingi commitni bildiradi.

Atomic commit

Atomic commit — bitta aniq vazifaga tegishli kichik va mantiqiy commit. Bunday commitda bir-biriga aloqasiz ko‘p o‘zgarishlar aralashtirilmaydi.

Atomic commit misollari:

  • faqat login validatsiyasini tuzatish;
  • faqat navbar responsive muammosini hal qilish;
  • faqat bitta API endpoint qo‘shish;
  • faqat bitta typo tuzatish;
  • faqat bitta component stylingini o‘zgartirish.

Atomic commitlar loyiha tarixini tushunarli qiladi.

Conventional commit

Conventional commit — commit message yozishning standartlashgan uslubi. Unda commit turi va qisqa tavsifi yoziladi.

Misollar:

  • feat: add login page;
  • fix: resolve navbar overflow;
  • docs: update README;
  • style: format CSS file;
  • refactor: simplify user service;
  • test: add auth tests;
  • chore: update dependencies.

Bunday format changelog, release note va avtomatik versiyalash jarayonlarida ishlatilishi mumkin.

Commit turlari

Commitlar mazmuniga qarab turli ko‘rinishda bo‘lishi mumkin.

Keng uchraydigan commit turlari:

  • feature commit — yangi funksiya qo‘shadi;
  • fix commit — xatolikni tuzatadi;
  • refactor commit — kod tuzilmasini o‘zgartiradi;
  • docs commit — dokumentatsiyani yangilaydi;
  • style commit — kod formatini o‘zgartiradi;
  • test committest qo‘shadi yoki yangilaydi;
  • chore commit — yordamchi texnik o‘zgarishlarni bildiradi.

Commit turi o‘zgarish mazmunini tezroq tushunishga yordam beradi.

Commit va muallif

Har bir commit muallif ma’lumotiga ega bo‘ladi. Git commit yaratilganda foydalanuvchi nomi va email manzili yoziladi.

Commit muallifi quyidagilar orqali aniqlanadi:

  • Git username;
  • Git email;
  • commit sanasi;
  • commit ID;
  • remote platformadagi profil.

GitHub kabi platformalarda commit muallifi foydalanuvchi profili bilan bog‘lanishi mumkin.

Commit va vaqt

Har bir commit yaratilgan vaqtga ega. Bu vaqt repository tarixida o‘zgarishlar qachon qilinganini ko‘rsatadi.

Commit vaqti quyidagilarda ishlatiladi:

  • loyiha rivojlanish tarixini ko‘rish;
  • bug qachon kiritilganini aniqlash;
  • release vaqtini belgilash;
  • jamoa faolligini ko‘rish;
  • audit va tekshiruv jarayonlari.

Commit vaqti Git logda ko‘rinadi.

Commit va CI/CD

CI/CD jarayonlari ko‘pincha commit yoki push hodisasi bilan ishga tushadi. Masalan, repositoryga yangi commit push qilinganda avtomatik testlar bajarilishi mumkin.

Commit asosida CI/CD quyidagilarni bajarishi mumkin:

GitHub Actions, GitLab CI va boshqa CI/CD tizimlari commitlarga bog‘langan holda ishlaydi.

Commit va code review

Code review jarayonida reviewerlar commitdagi o‘zgarishlarni tekshiradi. Ular qaysi fayllar o‘zgargani, kod qanday yozilgani va commitlar mantiqiy ajratilganini ko‘rishi mumkin.

Code review’da commit quyidagi maqsadlarda ko‘riladi:

  • o‘zgarish sababini tushunish;
  • kod sifati va xatolarni tekshirish;
  • tarixni tartibli ko‘rish;
  • pull request mazmunini baholash;
  • har bir o‘zgarish bosqichini kuzatish.

Commitlar tartibli bo‘lsa, code review jarayoni ham tushunarli bo‘ladi.

Dasturlashdagi o‘rni

Commit dasturiy loyiha tarixini saqlaydigan asosiy Git elementi hisoblanadi. Har bir commit kod bazasining muayyan vaqtdagi holatini belgilaydi.

Commit quyidagi joylarda muhim rol o‘ynaydi:

Commit Git repository ichidagi o‘zgarishlarni tartibli, kuzatiladigan va boshqariladigan holatda saqlaydi.

Bog‘liq tushunchalar

Git, GitHub, Repository, Branch, Pull request, Merge, Git log, Diff, Revert, Reset, Tag, CI/CD