Git commit

Git commit


ULASHISH

Commit nima?

Commit (qayd) loyihangizdagi saqlash nuqtasiga o‘xshaydi.

U ma’lum bir vaqtdagi fayllaringiz holatining suratini nima o‘zgarganini tavsiflovchi xabar bilan birga qayd etadi.

Kerak bo‘lsa, istalgan vaqtda oldingi commit’ga qaytishingiz mumkin.

Commit’lar uchun ba’zi asosiy buyruqlar:

  • git commit -m "message" - Stage qilingan o‘zgarishlarni xabar bilan commit qilish
  • git commit -a -m "message" - Barcha kuzatiladigan o‘zgarishlarni commit qilish (staging’ni o‘tkazib yuborish)
  • git log - Commit tarixini ko‘rish

Xabar bilan qanday commit qilish mumkin (-m)

Stage qilingan o‘zgarishlaringizni saqlash uchun git commit -m "your message" buyrug‘idan foydalaning:

Misol

git commit -m "First release of Hello World!"
[master (root-commit) 221ec6e] First release of Hello World!
 3 files changed, 26 insertions(+)
 create mode 100644 README.md
 create mode 100644 bluestyle.css
 create mode 100644 index.html

Siz va boshqalar nima o‘zgarganini tushunishi uchun har doim aniq xabar yozing.



Barcha o‘zgarishlarni stage qilmasdan commit qilish (-a)

git commit -a -m "message" yordamida allaqachon kuzatilayotgan fayllar uchun staging bosqichini o‘tkazib yuborishingiz mumkin.

Bu barcha o‘zgartirilgan va o‘chirilgan fayllarni commit qiladi, lekin yangi/kuzatilmaydigan fayllarni emas.

Misol

git commit -a -m "Quick update to README"
[master 123abcd] Quick update to README
 1 file changed, 2 insertions(+)

Ogohlantirish: Staging bosqichini o‘tkazib yuborish keraksiz o‘zgarishlarni ham kiritib yuborishingizga olib kelishi mumkin. Ehtiyotkorlik bilan foydalaning.

Eslatma: git commit -a yangi/kuzatilmaydigan fayllar uchun ishlamaydi. Yangi fayllar uchun avval git add <file> buyrug‘idan foydalanishingiz shart.

Yangi faylni -a bilan commit qilishga urinsangiz nima bo‘ladi?

$ git commit -a -m "Try to commit new file"
On branch master

No commits yet

Untracked files:
  (use "git add ..." to include in what will be committed)
        index.html

nothing added to commit but untracked files present (use "git add" to track)

Ko‘p qatorli commit xabarlarini yozish

Agar shunchaki git commit deb yozsangiz (-m parametrisiz), batafsil, ko‘p qatorli xabar yozishingiz uchun standart muharriringiz ochiladi:

Misol

git commit

Birinchi qatorga qisqa xulosa yozing, bitta bo‘sh qator qoldiring, so‘ng pastda batafsil ma’lumot qo‘shing.


Commit xabarlari bo‘yicha eng yaxshi amaliyotlar:

  • Birinchi qatorni qisqa tuting (50 ta belgi yoki undan kam).
  • Buyruq maylidan foydalaning (masalan, “Added feature” emas, “Add feature”).
  • Xulosadan keyin bitta bo‘sh qator qoldiring, so‘ng kerak bo‘lsa, batafsil ma’lumot qo‘shing.
  • Faqat nima o‘zgarganini emas, balki o‘zgarish nima uchun kiritilganini ham tavsiflang.

Commit’ning boshqa foydali parametrlari

  • Bo‘sh commit yaratish:
    git commit --allow-empty -m "Start project"
  • Oldingi commit xabaridan foydalanish (muharrirsiz):
    git commit --no-edit
  • Stage qilingan o‘zgarishlarni xabarni saqlagan holda oxirgi commit’ga tezda qo‘shish:
    git commit --amend --no-edit

Commit’dagi keng tarqalgan xatolarni bartaraf etish
  • Faylni stage qilishni unutdingizmi?
    Agar git commit -m "message" buyrug‘ini ishga tushirib, faylni git add qilishni unutgan bo‘lsangiz, uni qo‘shing va qayta commit qiling. Yoki uni oxirgi commit’ingizga qo‘shish uchun git commit --amend buyrug‘idan foydalaning.
  • Commit xabarida imlo xatosi bormi?
    Oxirgi commit xabarini tuzatish uchun git commit --amend -m "Corrected message" buyrug‘idan foydalaning.
  • Tasodifan noto‘g‘ri fayllarni commit qildingizmi?
    Oxirgi commit’ni bekor qilib, o‘zgarishlaringizni stage holatida saqlab qolish uchun git reset --soft HEAD~1 buyrug‘idan foydalanishingiz mumkin.

Commit tarixini ko‘rish (git log)

Repozitoriydagi commit’lar tarixini ko‘rish uchun git log buyrug‘idan foydalanishingiz mumkin:

Misol

git log
commit 09f4acd3f8836b7f6fc44ad9e012f82faf861803 (HEAD -> master)
Author: w3schools-test <test@w3schools.com>
Date:   Fri Mar 26 09:35:54 2021 +0100

    Updated index.html with a new line

commit 221ec6e10aeedbfd02b85264087cd9adc18e4b26
Author: w3schools-test <test@w3schools.com>
Date:   Fri Mar 26 09:13:07 2021 +0100

    First release of Hello World!

Qisqaroq ko‘rinish uchun git log --oneline buyrug‘idan foydalaning:

Misol

git log --oneline
09f4acd Updated index.html with a new line
221ec6e First release of Hello World!

Har bir commit’da qaysi fayllar o‘zgarganini ko‘rish uchun git log --stat buyrug‘idan foydalaning:

Misol

git log --stat



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!