Git tarixi

Git tarixi


ULASHISH

Git tarixi nima? Undan nima uchun foydalaniladi?

Git loyihangizga kiritilgan har bir o‘zgarishning batafsil qaydini yuritadi.

Nima o‘zgarganini, qachon va kim o‘zgartirganini ko‘rish uchun tarix buyruqlaridan foydalanishingiz mumkin.

Bu jarayonni kuzatish, xatolarni topish va loyihangiz qanday rivojlanganini tushunish uchun foydali.


Tarixni ko‘rish uchun asosiy buyruqlar

  • git log - To‘liq commit tarixini ko‘rsatish
  • git log --oneline - Commit’larning qisqacha ko‘rinishini chiqarish
  • git show <commit> - Muayyan commit tafsilotlarini ko‘rsatish
  • git diff - Stage qilinmagan o‘zgarishlarni ko‘rish
  • git diff --staged - Stage qilingan o‘zgarishlarni ko‘rish

Tarixni ko‘rish bo‘yicha eng yaxshi amaliyotlar

  • Tarixingiz tushunarli bo‘lishi uchun tez-tez va mazmunli commit qiling.
  • Siz va jamoangiz keyinchalik o‘zgarishlarni tushuna olishi uchun aniq commit xabarlarini yozing.
  • Commit tarixingizni tezda ko‘zdan kechirish uchun git log --oneline buyrug‘idan foydalaning.
  • Ishingizni ko‘zdan kechirish uchun commit qilishdan oldin git diff buyrug‘idan foydalaning.

Commit tarixini ko‘rish (git log)

Repozitoriyingizdagi barcha commit’larning batafsil ro‘yxatini ko‘rsating:

Misol: To‘liq commit tarixi

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

    Updated index.html with a new line

Bu buyruq barcha commit’larni muallifi, sanasi va xabari bilan birga ko‘rsatadi.

Aylantirish uchun strelka tugmalaridan foydalaning, chiqish uchun esa q tugmasini bosing.

Maslahat: Log’ni ko‘rayotganda / belgisini va undan keyin qidiruv so‘zini yozib, so‘zni qidirishingiz mumkin
(masalan, /fix), so‘ng keyingi moslikka o‘tish uchun n tugmasini bosing.

Istalgan vaqtda chiqish uchun q tugmasini bosing.


Commit tafsilotlarini ko‘rsatish (git show <commit>)

Muayyan commit’ning barcha tafsilotlari va o‘zgarishlarini ko‘ring:

Misol: Commit tafsilotlarini ko‘rsatish

git show 09f4acd
commit 09f4acd3f8836b7f6fc44ad9e012f82faf861803 (HEAD -> master)
Author: w3schools-test 
Date:   Fri Mar 26 09:35:54 2021 +0100

    Updated index.html with a new line

diff --git a/index.html b/index.html
index 1234567..89abcde 100644
--- a/index.html
+++ b/index.html
@@ ...
+

New Title

Bu buyruq commit haqidagi hamma narsani ko‘rsatadi: uni kim va qachon qilgani, xabari va aniq o‘zgarishlar.



O‘zgarishlarni solishtirish (git diff)

Ishchi katalogingiz va oxirgi commit o‘rtasidagi farqni (stage qilinmagan o‘zgarishlarni) ko‘ring:

Misol: Stage qilinmagan o‘zgarishlarni ko‘rish

git diff
diff --git a/index.html b/index.html
index 1234567..89abcde 100644
--- a/index.html
+++ b/index.html
@@ ...
-

Old Title

+

New Title

Bu buyruq siz kiritgan, lekin hali commit uchun stage qilinmagan o‘zgarishlarni ko‘rsatadi.


Stage qilingan o‘zgarishlarni solishtirish (git diff --staged)

Stage qilingan fayllaringiz va oxirgi commit o‘rtasidagi farqni ko‘ring:

Misol: Stage qilingan o‘zgarishlarni ko‘rish

git diff --staged
diff --git a/index.html b/index.html
index 1234567..89abcde 100644
--- a/index.html
+++ b/index.html
@@ ...
-

Old Title

+

New Title

Bu buyruq stage qilingan va commit qilishga tayyor o‘zgarishlarni ko‘rsatadi.


Ikki commit’ni solishtirish (git diff <commit1> <commit2>)

Istalgan ikki commit o‘rtasida nima o‘zgarganini ko‘ring:

Misol: Ikki commit’ni solishtirish

git diff 1234567 89abcde
diff --git a/index.html b/index.html
index 1234567..89abcde 100644
--- a/index.html
+++ b/index.html
@@ ...
-

Old Title

+

New Title

Bu buyruq ikkita muayyan commit o‘rtasidagi farqlarni ko‘rsatadi.


Commit’larning qisqacha ko‘rinishini chiqarish (git log --oneline)

Har bir commit’ning qisqacha mazmunini ko‘rsating (tezkor umumiy ko‘rinish uchun juda qulay):

Misol: Bir qatorli log

git log --oneline
09f4acd Updated index.html with a new line
8e7b2c1 Add about page
1a2b3c4 Initial commit

Bu buyruq oson o‘qilishi uchun har bir commit’ni bitta qatorda ko‘rsatadi.


Muallif bo‘yicha commit’larni ko‘rsatish (git log --author="Alice")

Faqat muayyan muallif tomonidan qilingan commit’larni ko‘ring:

Misol: Muallif bo‘yicha commit’lar

git log --author="Alice"
commit 1a2b3c4d5e6f7g8h9i0j
Author: Alice 
Date:   Mon Mar 22 10:12:34 2021 +0100

    Add about page

Bu buyruq log’ni filtrlab, faqat siz ko‘rsatgan muallifning commit’larini chiqaradi.


So‘nggi commit’larni ko‘rsatish (git log --since="2 weeks ago")

Faqat so‘nggi ikki hafta ichida qilingan commit’larni ko‘ring:

Misol: So‘nggi commit’lar

git log --since="2 weeks ago"
commit 09f4acd3f8836b7f6fc44ad9e012f82faf861803
Author: w3schools-test 
Date:   Fri Mar 26 09:35:54 2021 +0100

    Updated index.html with a new line

Bu buyruq faqat yaqin vaqt oralig‘ida qilingan commit’larni ko‘rsatadi.


Har bir commit’da o‘zgargan fayllarni ko‘rsatish (git log --stat)

Har bir commit’da qaysi fayllar o‘zgarganini va nechta qator qo‘shilgan yoki olib tashlanganini ko‘ring:

Misol: Statistikali log

git log --stat
commit 09f4acd3f8836b7f6fc44ad9e012f82faf861803
Author: w3schools-test 
Date:   Fri Mar 26 09:35:54 2021 +0100

    Updated index.html with a new line

index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Bu buyruq log’dagi har bir commit’ga fayl o‘zgarishlarining qisqacha xulosasini qo‘shadi.


Branch grafigini ko‘rsatish (git log --graph)

Branch tarixingizning oddiy ASCII grafigini ko‘ring (merge’larni vizual ko‘rish uchun juda qulay):

Misol: Grafikli log

git log --graph --oneline
* 09f4acd Updated index.html with a new line
* 8e7b2c1 Add about page
|\
| * aabbccd Merge branch 'feature-x'
|/

Bu buyruq branch va merge tarixingizning oddiy grafigini ko‘rsatadi.


Muammolarni bartaraf etish

  • O‘zgarishlaringizni ko‘ra olmayapsizmi? Ishingizni commit qilganingizga ishonch hosil qiling. Commit qilinmagan o‘zgarishlar tarixda ko‘rinmaydi.
  • Log juda uzunmi? Uni o‘qishni osonlashtirish uchun git log --oneline yoki git log --since parametridan foydalaning.
  • Log ko‘rinishidan qanday chiqiladi? Log yoki diff ko‘rinishidan chiqish uchun q tugmasini bosing.

Eslatma: Tarixingizni o‘rganish nima, qachon va nima uchun o‘zgarganini tushunishga yordam beradi.




W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!