4-modul · 9-dars: Git · Github
Daraja: O'rta
Git · Github. Multithreading va I/O bo‘yicha nazariya, amaliy namuna va mustaqil mashq.
Tushuntirish
## Dars maqsadi Git · Github tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.
## Nazariya Taqsimlangan versiya nazorati tizimi; kod o'zgarishlarini kuzatadi. `git init/add/commit/push/pull` buyruqlari bilan ishlatiladi.
Fayl (kod) o'zgarishlar tarixini saqlash, oldingi holatga qaytish va jamoada birga ishlash tizimi.
## Intervyuga tayyorgarlik ### Git nima? Uni qanday ishlatamiz? Taqsimlangan versiya nazorati tizimi; kod o'zgarishlarini kuzatadi. `git init/add/commit/push/pull` buyruqlari bilan ishlatiladi.
### Version control nima? Fayl (kod) o'zgarishlar tarixini saqlash, oldingi holatga qaytish va jamoada birga ishlash tizimi.
### Git bizga nima uchun kerak? O'zgarishlarni kuzatish, versiyaga qaytish, jamoada parallel ishlash va kodni yo'qotmaslik uchun.
### Git 'pull request' va 'push' o'rtasida qanday farq bor? `push` — lokal commit larni remote ga yuklash. Pull request — o'zgarishlarni asosiy branchga qo'shishni so'rab, kod ko'rikdan (review) o'tkazish so'rovi (GitHub xususiyati).
### Github nima? Git repozitoriylarini joylash, boshqarish va hamkorlik uchun onlayn platforma (bulut hosting).
### Git va Github o'rtasidagi farq? Git — vosita (tool), lokal versiya nazorati. GitHub — Git repolarni saqlaydigan onlayn xizmat/platforma.
### Gitda merge qilish nima? Bir branch dagi o'zgarishlarni boshqasiga birlashtirish.
### Git repository nima? Loyiha fayllari va ularning butun o'zgarishlar tarixi saqlanadigan joy (papka).
### Git clone nima qiladi? Mavjud (masalan remote) repozitoriyning to'liq nusxasini lokal kompyuterga ko'chiradi.
## Versiya va aniqlik Java misollari Java 17 bazasiga mo‘ljallangan. JDK/JRE paketlash usuli distributivga bog‘liq; JVM bayt-kodni interpretatsiya va JIT orqali bajarishi mumkin. GC uchun aniq bajarilish vaqtiga kafolat yo‘q; finalization resurs yopish usuli emas. Thread stop/suspend/resume kabi eski metodlar amaliy yechim emas. Koddagi import, klass yoki tashqi kutubxona kontekstini tekshiring.
## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/4-module.md) [Rasmiy qo‘llanma](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/package-summary.html) [Sizning avvalgi savol-javob arxivingiz](https://lightyer.uz/java/interview.html)
Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.
Kod misoli
# Terminalda faqat o'quv repositoryda:
git status --short
git diff
git log -3 --oneline
# Sirlar va .env ni commitga qo'shmang.
Keng tarqalgan xatolar
- `git push --force` ni umumiy branch ga ishlatish - hamkasblarning ishini yo'q qiladi.
- Sirlarni (parol, token) commit ga qo'shib yuborish - tarixdan o'chirish qiyin.
Mashqlar
- Yangi branch ochib, o'zgarish kiritib, uni `main` ga merge qiling.
- Ataylab konflikt yasab, uni qo'lda hal qiling.
Teglar: nazariya, modul-04, pdp