# Vaqtingizni tejash uchun GIT layfhaklari

### 15 ta Git Hack: Ishingizni Osonlashtiruvchi Foydali Buyruqlar

#### 1\. Avtomatik tuzatish (Autocorrect)

Git-da avtomatik tuzatish funksiyasi borligini bilasizmi?  
Agar Git buyruqlarini kiritishda ko‘p xatoga yo‘l qo‘ysangiz, ushbu funksiyani yoqish tavsiya etiladi:

```bash
git config --global help.autocorrect 1
```

Bu Git buyruqlarida kichik xatolarni avtomatik tuzatadi. Biroq, agar siz juda noto‘g‘ri buyruq yozsangiz, Git shunchaki xato xabarini chiqaradi.

---

#### 2\. O‘zgarishlar kiritilgan barcha fayllarni qo‘shish (Commit qilish)

O‘zgarishlar kiritilgan barcha fayllarni qo‘shish uchun quyidagi buyruqdan foydalaning:

```bash
git add -A
```

yoki

```bash
git add .
```

---

#### 3\. Branchlar o‘rtasida tez almashish

Oxirgi ikkita branch o‘rtasida tez ko’chib o’tish uchun quyidagi buyruqdan foydalanishingiz mumkin:

```bash
git checkout -
```

Bu tarmoqlar orasida tez almashinib o’tish imkonini beradi.

---

#### 4\. Commit tarixini tekshirish

Agar Git repozitoriyasida bajarilgan commit’larni ko‘rmoqchi bo‘lsangiz:

```bash
git log
```

Bu buyruq commit xabarlarini, muallif nomini, elektron pochta manzilini, commit sanasi va vaqtini ko‘rsatadi.  
Agar har bir commit’dagi o‘zgarishlarni ko‘rishni istasangiz:

```bash
git log -p
```

Git log’ni yopish uchun `q` yoki `z` tugmachalarini bosing.

---

#### 5\. Branchlar kuzatuv holatini tekshirish

Hozirgi amaldagi branchlar qaysi joyga (commitga) ko‘rsatayotganini ko‘rish uchun:

```bash
git branch -vv
```

Bu qaysi branch qanday commitga bog‘langanini ko‘rsatadi.

---

#### 6\. Commit qachon bajarilganini aniqlash

Agar xatolikni aniqlash uchun tarixda qaysi commit sabab bo‘lganini topmoqchi bo‘lsangiz:

```bash
git bisect
```

Bu buyruq Git commit’larini ketma-ket tekshirishga yordam beradi.

---

#### 7\. Commit va fayl qo‘shishni bir xil buyruq bilan bajarish

Agar yangi fayl qo‘shilmagan bo‘lsa, commit qilishni va barcha mavjud o‘zgarishlarni qo‘shishni quyidagi buyruq bilan amalga oshirish mumkin:

```bash
git commit -a -m "commit xabari"
```

---

#### 8\. Git add’ni bekor qilish

Agar noto‘g‘ri fayl qo‘shilgan bo‘lsa, commit qilmasdan oldin uni bekor qilish uchun:

```bash
git reset /path/fayl_nomi
```

Agar commit allaqachon bajarilgan bo‘lsa:

```bash
git reset --soft HEAD~1
git reset /path/fayl_nomi
git rm /path/fayl_nomi
git commit
```

Bu faylni commit’dan chiqarib tashlaydi va yangi commit qo‘shadi.  
Agar butun tarmoqni boshlang‘ich holatga qaytarmoqchi bo‘lsangiz:

```bash
git reset
```

---

#### 9\. So‘nggi commit'ga qo‘shilmagan faylni qo‘shish

Agar oxirgi commit’ga qo‘shishni unutgan fayl bo‘lsa:

```bash
git add fayl_nomi
git commit --amend
```

Bu faylni oldingi commit’ga qo‘shib qo‘yadi.

---

#### 10\. Repozitorini avvalgi commit’ga qaytarish

Agar oxirgi commit’lardagi o‘zgarishlar noto‘g‘ri bo‘lsa va avvalgi holatga qaytmoqchi bo‘lsangiz:

```bash
git checkout <SHA>
```

`SHA` - bu commit'ning unikal(noyob) identifikatori. Uni `git log` orqali topishingiz mumkin.

---

#### 11\. Git merge'ni bekor qilish

Agar bir nechta tarmoqlarni noto‘g‘ri birlashtirib qo‘ysangiz va ortga qaytmoqchi bo‘lsangiz:

```bash
git revert HEAD
```

Agar aniq qaysi merge commit’ni bekor qilishni xohlasangiz:

```bash
git revert -m 1 <SHA>
```

Bu yerda `-m 1` – birlashtirish paytida asosiy tarmoqni saqlashni bildiradi.

---

#### 12\. Git branchini o‘chirish (local va remote)

Agar branch lokal yoki remote repozitoriyadan o‘chirmoqchi bo‘lsangiz:

Lokal tarmoqni o‘chirish:

```bash
git branch -d <tarmoq_nomi>
```

Remote tarmoqni o‘chirish:

```bash
git push origin --delete <tarmoq_nomi>
```

Yangi branch yaratish va unga o‘tish:

```bash
git checkout -b <yangi_tarmoq_nomi>
```

---

#### 13\. Branch nomini o‘zgartirish

Agar noto‘g‘ri branch nomi kiritilgan bo‘lsa:

```bash
git branch -m eski_nomi yangi_nomi
```

Masofaviy branch nomini o‘zgartirish:

```bash
git push origin --delete eski_nomi
git push origin yangi_nomi
```

---

#### 14\. Autostash funksiyasini yoqish

Agar tarmoqda ishlayotganingizda boshqa foydalanuvchi yangi commit qo‘shsa, Git rebase bajarishda avvalgi o‘zgarishlarni vaqtincha saqlab qo‘yadi. Buni avtomatlashtirish uchun:

```bash
git config --global rebase.autoStash true
```

Bu ishlarni avtomatik bajarishga yordam beradi.

---

#### 15\. Git reflog – qaytarib bo‘lmaydigan xatolarni tuzatish

Agar Git buyruqlari yordam bermay qolsa, `git reflog` oxirgi qilingan barcha o‘zgarishlarni ko‘rsatadi va istalgan nuqtaga qaytishga yordam beradi.

```bash
git reflog
```

Agar juda katta xatolik yuz bergan bo‘lsa, ushbu buyruq eng yaxshi yechim bo‘lishi mumkin.  
Bu Git’ning kam ma’lum, lekin juda foydali buyruqlari bo‘lib, muammolarni tez va samarali hal qilishga yordam beradi. Savollar bo’lsa izohda qoldiring🚀
