1-bo‘lim
Versiya nazorati va Git bilan tanishuv
Versiya nazorati nima uchun kerak, Git qanday paydo bo'lgan va u boshqa tizimlardan nimasi bilan farq qiladi.
Ushbu bo‘lim mundarijasi
Har bir dasturchi hayotida bir marta shunday papka bo'lgan:
loyiha/
├── index_oxirgi.html
├── index_oxirgi_2.html
├── index_ishlaydigan.html
├── index_ishlaydigan_TEGMA.html
└── index_yangi_oxirgi_final.html
Qaysi biri to'g'ri? Kecha nima o'zgardi? Kim o'zgartirdi? Bu savollarga javob beradigan vosita - versiya nazorati tizimi.
Versiya nazorati nima? #
Versiya nazorati (ingliz. version control) - fayllardagi har bir o'zgarishni yozib boruvchi tizim. U quyidagilarga imkon beradi:
| Imkoniyat | Nima beradi |
|---|---|
| Tarix | Har bir o'zgarish kim va qachon qilganini ko'rish |
| Qaytish | Istalgan eski holatga bir buyruq bilan qaytish |
| Tarmoqlar | Asosiy koddan ajralib, yangi g'oyani xavfsiz sinash |
| Jamoaviy ish | Bir nechta dasturchi bir vaqtda ishlashi |
| Solishtirish | Ikki versiya orasidagi farqni satrma-satr ko'rish |
| Sabab topish | Xato qaysi o'zgarishdan keyin paydo bo'lganini aniqlash |
Yo'q. Matn ko'rinishidagi har qanday narsa uchun foydali: hujjatlar, sozlama fayllari, kitob qo'lyozmasi, konfiguratsiya, hatto retseptlar.
Rasm va video kabi ikkilik fayllar ham saqlanadi, lekin ular uchun Git farqni ko'rsata olmaydi - butun faylni yangi nusxa sifatida saqlaydi.
Git qanday paydo bo'ldi? #
2005-yil. Linux yadrosi ustida butun dunyo bo'ylab minglab dasturchi ishlardi. Ular BitKeeper nomli tijorat tizimidan bepul foydalanishardi. Kompaniya bepul litsenziyani bekor qilgach, Linus Torvalds mavjud vositalarni ko'rib chiqdi va hech biri unga to'g'ri kelmasligini aytdi.
U ikki hafta ichida yangi tizim yozdi. Uning talablari qat'iy edi:
- Tezlik - minglab fayl bilan ham bir zumda ishlashi
- Sodda tuzilma - ichki ishlash prinsipi tushunarli bo'lishi
- Nochiziqli ishlab chiqish - minglab parallel tarmoq
- To'liq taqsimlanganlik - har bir nusxa mustaqil
- Yaxlitlik - ma'lumot buzilishini aniqlay olishi
Natijada Git paydo bo'ldi. Bugun dunyodagi loyihalarning katta qismi undan foydalanadi.
Linus hazillashib aytgan: "Men o'z loyihalarimni o'zimga o'xshatib nomlayman."
Britan ingliz tilida git - "qaysar odam" degani.
Rasmiy hujjatda esa "Global Information Tracker" deb ham izohlanadi.
Markazlashgan va taqsimlangan tizimlar #
Bu farq amalda nimani anglatadi?
# SVN da: har bir amal serverga murojaat qiladi
svn log # internet kerak
svn diff # internet kerak
svn commit # internet kerak
# Git da: deyarli hamma narsa lokal
git log # internet kerak emas
git diff # internet kerak emas
git commit # internet kerak emas
git push # faqat shu yerda internet kerak
Git bilan siz internetsiz kommit qilishingiz, tarmoq yaratishingiz,
tarixni ko'rishingiz mumkin. Internet paydo bo'lganda git push bilan
hammasini birdaniga yuborasiz.
Git va GitHub - bu bir narsa emas #
Bu eng ko'p uchraydigan chalkashlik.
| Git | GitHub | |
|---|---|---|
| Nima? | Dastur | Veb-xizmat |
| Kim yaratgan? | Linus Torvalds, 2005 | GitHub Inc., 2008 |
| Qayerda ishlaydi? | Sizning kompyuteringizda | Internetda |
| Kerakmi? | Ha, asosiy vosita | Yo'q, ixtiyoriy |
| Alternativalari | Mercurial, SVN | GitLab, Bitbucket, Gitea |
Git - vosita, GitHub - shu vosita bilan yaratilgan loyihalarni saqlash va baham ko'rish uchun xizmat. Git ni GitHub siz ishlatish mumkin.
Git - Word dasturi kabi. GitHub - Google Drive kabi. Word siz hujjat yozasiz, Drive da uni saqlaysiz va boshqalar bilan bo'lishasiz.
Git nimasi bilan ajralib turadi? #
Ko'pchilik tizimlar fayl o'zgarishlarini saqlaydi. Git esa har bir kommitda loyihaning butun holatini (snapshot) saqlaydi.
Bu model tarmoq yaratish va almashishni juda tez qiladi - Git da tarmoq yaratish soniyaning mingdan bir qismini oladi.
Git nima uchun ishonchli? #
Git da har bir obyekt SHA-1 xesh bilan nomlanadi:
a3f5b2c8e91d4f7a6b0c2d8e5f1a9b3c7d4e6f28
Bu 40 belgili raqam faylning mazmunidan hisoblanadi. Agar faylda bitta harf o'zgarsa, xesh butunlay boshqacha bo'ladi.
Diskda bitta bit buzilsa ham, Git buni sezadi - chunki hisoblangan xesh saqlangan xeshga mos kelmaydi.
Git da "jimgina" ma'lumot yo'qolishi mumkin emas.
Buyruq satri yoki grafik dastur? #
Git bilan ishlashning bir necha yo'li bor:
| Vosita | Kimga mos |
|---|---|
Buyruq satri (git) | Hammaga - asosiy va eng kuchli usul |
| VS Code, Sublime Merge | Kundalik ish uchun qulay |
| GitHub Desktop | Boshlovchilar uchun sodda |
| GitKraken, SourceTree | Murakkab tarixni vizual ko'rish |
Grafik dasturlar buyruqlarni "yashiradi". Nimadir noto'g'ri ketganda (bu albatta bo'ladi) faqat buyruq satri yordam beradi.
Shuning uchun bu darslikda hamma narsa buyruq satrida ko'rsatiladi. Grafik vositalarga keyinroq o'tasiz.
Nima o'rganamiz? #
Ushbu darslikning 20 bo'limi quyidagi bosqichlardan iborat:
| Bo'limlar | Mavzu |
|---|---|
| 1-4 | Asoslar: o'rnatish, birinchi kommit, ichki tuzilma |
| 5-9 | Kundalik ish: tarix, bekor qilish, tarmoqlar, merge |
| 10-13 | Jamoaviy ish: remote, GitHub, Pull Request, rebase |
| 14-17 | Ilg'or vositalar: stash, tag, ish oqimlari, bisect |
| 18-20 | Avtomatlashtirish, jamoa qoidalari va amaliy loyiha |
- O'zingiz ishlagan loyihada nechta "eski nusxa" papka borligini sanang.
- Git va GitHub o'rtasidagi farqni o'z so'zlaringiz bilan yozing.
github.comga kirib,torvalds/linuxrepozitoriysini toping. Unda nechta kommit borligiga qarang.- O'zingizga yoqqan bitta ochiq loyihani toping va uning tarixini ko'ring.
- Nima uchun taqsimlangan tizim markazlashgandan afzalroq - uchta sabab yozing.
Xulosa #
- Versiya nazorati - fayllardagi o'zgarishlar tarixini yozib boruvchi tizim.
- Git ni 2005-yilda Linus Torvalds Linux yadrosi uchun yaratgan.
- Git taqsimlangan: har bir dasturchida loyihaning to'liq tarixi bo'ladi.
- Deyarli barcha amallar lokal bajariladi - internet faqat almashish uchun kerak.
- Git - dastur, GitHub - xizmat. Ular bir narsa emas.
- Git har bir kommitda to'liq surat saqlaydi, o'zgarmagan fayllarga havola qo'yadi.
- Har bir obyekt SHA-1 xesh bilan himoyalangan - ma'lumot buzilishi darhol seziladi.
Keyingi bo'limda Git ni o'rnatamiz va birinchi sozlamalarni qilamiz.
O‘qish tarixini saqlamoqchimisiz?
Tizimga kirsangiz, tugatgan bo‘limlaringiz saqlanadi va qoldirgan joyingizdan davom etasiz.
Xatolik topdingizmi?
Imlo xatosi, ishlamaydigan kod yoki noto‘g‘ri ma‘lumotni ko‘rsangiz - bizga xabar bering. Har bir xabar administrator tomonidan ko‘rib chiqiladi.