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.

🕑 8 daqiqa o‘qish 📄 979 so‘z 👁 7 marta ko‘rilgan
Ushbu bo‘lim mundarijasi
  1. Versiya nazorati nima?
  2. Git qanday paydo bo'ldi?
  3. Markazlashgan va taqsimlangan tizimlar
  4. Git va GitHub - bu bir narsa emas
  5. Git nimasi bilan ajralib turadi?
  6. Git nima uchun ishonchli?
  7. Buyruq satri yoki grafik dastur?
  8. Nima o'rganamiz?
  9. Xulosa

Har bir dasturchi hayotida bir marta shunday papka bo'lgan:

Natija
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:

ImkoniyatNima beradi
TarixHar bir o'zgarish kim va qachon qilganini ko'rish
QaytishIstalgan eski holatga bir buyruq bilan qaytish
TarmoqlarAsosiy koddan ajralib, yangi g'oyani xavfsiz sinash
Jamoaviy ishBir nechta dasturchi bir vaqtda ishlashi
SolishtirishIkki versiya orasidagi farqni satrma-satr ko'rish
Sabab topishXato qaysi o'zgarishdan keyin paydo bo'lganini aniqlash
Versiya nazorati faqat kod uchunmi?

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? #

Linus Torvalds - Linux yadrosi va Git muallifi

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:

  1. Tezlik - minglab fayl bilan ham bir zumda ishlashi
  2. Sodda tuzilma - ichki ishlash prinsipi tushunarli bo'lishi
  3. Nochiziqli ishlab chiqish - minglab parallel tarmoq
  4. To'liq taqsimlanganlik - har bir nusxa mustaqil
  5. Yaxlitlik - ma'lumot buzilishini aniqlay olishi

Natijada Git paydo bo'ldi. Bugun dunyodagi loyihalarning katta qismi undan foydalanadi.

"Git" nimani anglatadi?

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 #

Markazlashgan (SVN) Taqsimlangan (Git) Server butun tarix Dasturchi 1 faqat nusxa Dasturchi 2 faqat nusxa Dasturchi 3 faqat nusxa Server ishlamasa - hech kim ishlay olmaydi Tarix faqat bitta joyda saqlanadi GitHub butun tarix Dasturchi 1 butun tarix Dasturchi 2 butun tarix Dasturchi 3 butun tarix Internetsiz ham to'liq ishlash mumkin Har bir nusxa - to'liq zaxira
Git da har bir dasturchida loyihaning to'liq tarixi bo'ladi

Bu farq amalda nimani anglatadi?

Terminal
# 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
Samolyotda ham ishlaydi

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.

GitGitHub
Nima?DasturVeb-xizmat
Kim yaratgan?Linus Torvalds, 2005GitHub Inc., 2008
Qayerda ishlaydi?Sizning kompyuteringizdaInternetda
Kerakmi?Ha, asosiy vositaYo'q, ixtiyoriy
AlternativalariMercurial, SVNGitLab, Bitbucket, Gitea

Git - vosita, GitHub - shu vosita bilan yaratilgan loyihalarni saqlash va baham ko'rish uchun xizmat. Git ni GitHub siz ishlatish mumkin.

O'xshatish

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.

Har bir kommit - loyihaning to'liq surati Kommit 1 A B C Kommit 2 A1 B C Kommit 3 A1 B1 C1 Yashil - o'zgargan fayl Kulrang - o'zgarmagan, eskisiga havola saqlanadi Shuning uchun joy tejaladi
Git o'zgarmagan fayllarni takrorlamaydi - ularga havola qo'yadi

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:

Natija
a3f5b2c8e91d4f7a6b0c2d8e5f1a9b3c7d4e6f28

Bu 40 belgili raqam faylning mazmunidan hisoblanadi. Agar faylda bitta harf o'zgarsa, xesh butunlay boshqacha bo'ladi.

Ma'lumot buzilishi darhol aniqlanadi

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:

VositaKimga mos
Buyruq satri (git)Hammaga - asosiy va eng kuchli usul
VS Code, Sublime MergeKundalik ish uchun qulay
GitHub DesktopBoshlovchilar uchun sodda
GitKraken, SourceTreeMurakkab tarixni vizual ko'rish
Avval buyruqlarni o'rganing

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'limlarMavzu
1-4Asoslar: o'rnatish, birinchi kommit, ichki tuzilma
5-9Kundalik ish: tarix, bekor qilish, tarmoqlar, merge
10-13Jamoaviy ish: remote, GitHub, Pull Request, rebase
14-17Ilg'or vositalar: stash, tag, ish oqimlari, bisect
18-20Avtomatlashtirish, jamoa qoidalari va amaliy loyiha
Amaliy topshiriq
  1. O'zingiz ishlagan loyihada nechta "eski nusxa" papka borligini sanang.
  2. Git va GitHub o'rtasidagi farqni o'z so'zlaringiz bilan yozing.
  3. github.com ga kirib, torvalds/linux repozitoriysini toping. Unda nechta kommit borligiga qarang.
  4. O'zingizga yoqqan bitta ochiq loyihani toping va uning tarixini ko'ring.
  5. 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.

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.