Git tarixi
Git tarixi
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‘rsatishgit log --oneline- Commit’larning qisqacha ko‘rinishini chiqarishgit show <commit>- Muayyan commit tafsilotlarini ko‘rsatishgit diff- Stage qilinmagan o‘zgarishlarni ko‘rishgit 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 --onelinebuyrug‘idan foydalaning. - Ishingizni ko‘zdan kechirish uchun commit qilishdan oldin
git diffbuyrug‘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 --onelineyokigit log --sinceparametridan 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!
