Git bilan ishlash




Download 4.23 Mb.
Pdf ko'rish
bet1/2
Sana09.03.2024
Hajmi4.23 Mb.
#169360
  1   2
Bog'liq
8-GIT bilan ishlash



GIT bilan ishlash


Reja:
1. Git
2. Gitlab
3. Github



Fayldagi o`zgarishlarni bekor qilib oldingi holatiga qanday
qaytarish mumkin?
• Edit->undo, Edit->redo
•Fayl nusxalarini saqlab borish yordamida


Masalan hozir o`ylagan papkadagi faylni o`zgartiryapman deb adashib
boshqa faylni o`zgartirib qo`yish yoki shunday adashish kabi bir faylni
ikkinchi papka ichiga ko`chirib kerakli faylni ustidan yozib yuborish
mumkin.


Projectda faqat bir o`zingiz ishlasangiz oson


Jamoa bilan ishlashda esa fayllarni boshqarish juda qiyin


Version Control System
• Biz qilgan har qanday o`zgarishni saqlash.
• Avtomatik nusxa olish.
• Variant (version)larni boshqarish va tarmoq(branch)lash
• O`zgarishlarni qayd qilib borish


VCS ning uch ta turi mavjud:
1.
LOKAL (Local VCS)
2.
MARKAZLASHGAN (Centralized VCS)
3.
TAQSIMLANGAN (Distributed VCS)


Mahalliy - talqinlarni boshqarish tizimlari
(Local Version Control Systems)
Talqinlarni boshqaruvchi markazlashtirilgan tizimlar (TBMT)
(Centralized Version Control Systems)
Talqinlarni boshqaruvchi taqsimlangan tizimlar (TBTT)
(Distributed Version Control Systems)


Mahalliy - talqinlarni boshqarish tizimlari yordamida. (RCS )
Mahalliy - talqinlarni boshqarish tizimli
(Local Version Control Systems)


Navbatdagi jiddiy muammo: boshqa kompyuterdagi yaratuvchilar
bilan birga ishlash zarurati.
Buni qanday hal qilamiz?


Talqinlarni boshqaruvchi markazlashtirilgan tizimlar
CVS, Subversion va Perforce


Bunday yondashuv ko`p imkoniyatlar yaratadi, asosan mahalliy TBT da
ishlaganda bu yanada sezilarli. Misol uchun loyihada kim nima bilan
shug`ullanishini hamma biladi. Аdministratorlarda kim nima qila
olishligining aniq boshqaruvi bor va albatta TBMT ni administrator
huquqida boshqarish har bir klientlar mahalliy bazalarini administrator
huquqida boshqarishga nisbatan ancha yengildir.


Biroq bunday yondashuvning jiddiy o`z nuqsonlari mavjud. Eng muhimi –
markazlashtirilgan server butun tizimning himoyalanmagan joyi hisoblanadi.
Аgar server bir soatga o`chib qolsa shu bir soat mobaynida dastur yaratuvchilar
o`zaro ma`lumot almashina olishmaydi va hech kim yangi talqinlarni saqlay
olmaydi. Аgarda markazlashtirilgan tizim ma`lumotlar ombori joylashgan disk
buzilsa va uning nusxasi bo`lmasa, siz hamma narsa – barcha loyiha tarixini
yo`qotasiz (faqat foydalanuvchilar mashinalarida saqlanib qolgan bir nechta
talqinlargina saqlanib qolinadi).


Аgarda loyihaning hamma tarixi bitta joyda saqlansa siz
hammasidan ayrilib qolishingiz mumkinligini bilib tavakkal
qilgan bo`lasiz.
Bu muammoni qanday yechish mumkin?


Talqinlarni boshqaruvchi taqsimlangan tizimlar
(Git, Mercurial, Bazaar yoki Darcs)


Talqinlarni boshqaruvchi taqsimlangan tizimlar (TBMT)
(Distributed Version Control Systems)


Talqinlarni boshqarishning taqsimlanga tizimi (TBTT) – bu
o`zgarishlarni bir yoki bir nechta fayllarda saqlab so`ngra ana shu
fayllar asosida tanlangan eski talqinlarni tiklash imkonini beruvchi
tizim


Loyihadagi bitta faylga bir vaqtnng o`zida bir necha dasturchi
tomonidan o`zgartirish kiritliganda muammo yaqqol ko`rinadi.
(ALBATTA REAL LOYIHALARDA SHUNDAY BO`LADI)
Git – talqinlarni boshqarish tizimi


JAMOANING BOSHQA A`ZOSINING 
FAYLI
SIZNING FAYLINGIZ


Yuqorida keltirilgan muammoni faqat GIT hal qilib bera oladi


Git nima?


Git - har qanday fayllar to`plamidagi o`zgarishlarni kuzatish uchun dastur bo`lib , odatda
dasturiy ta`minotni ishlab chiqish jarayonida manba kodini hamkorlikda ishlab chiquvchi
dasturchilar o`rtasidagi ishni muvofiqlashtirish uchun ishlatiladi . Uning maqsadlariga
tezlik, ma`lumotlar yaxlitligi va taqsimlangan, chiziqli bo`lmagan ish oqimlarini qo`llab-quvvatlash
kiradi (turli tizimlarda ishlaydigan minglab parallel filiallar).
Git


Linux yadrosi kodlariga o`zgarishlar (1991-2002) patchlarni qabul qilish va
talqinlarni arxivlash orqali amalga oshirilgan. 2002 yilda loyiha ximoyalangan
talqinlarni boshqarish taqsimlangan tizimi BitKeeper ga o`tkazildi. 2005 yilda Linux
yadrosini yaratuvchi jamoasi va BitKeeper ni yaratuvchi kompaniya orasidagi
munosabat buzildi va mahsulotdan bepul foydalanish bekor qilindi. Bu Linux
yaratuvchilarining BitKeeper dan foydalanish davomida oshirgan malakalariga
asoslangan holda o`z tizimlarini yaratishi uchun turtki bo`ldi.
GIT ning qisqacha tarixi


• Tezlik
• Аrxitekturasi soddaligi
• Chiziqli bo`lmagan dasturlashni qo`llashi (mingdan ortiq parallel 
tarmoqlar)
• To`liq taqsimlangan
• Linux yadrosi kabi katta loyihalar bilan samarali ishlay olish (ham tezlik
jihatdan, ham ma`lumotlar hajmi jihatdan)
Yangi tizim uchun asosiy talablar quyidagilar edi:


Nusxalar patchlar o`rniga
Git ning boshqa TBT (masalan, Subversion va unga o`xshash) lardan asosiy
farqi – bu Git ning ma`lumotlarga qanday qarashi. Ko`pchilik boshqa
tizimlar axborotlarni fayllarning o`zgarish(patch)lari ro`yhati ko`rinishida
saqlardi. Bunday tizimlar (CVS, Subversion, Perforce, Bazaar va boshqalari)
rasmda ko`rsatilganidek har bir faylga o`zgartirish kiritish vaqtida
saqlanuvchi ma`lumotlarga fayllar va o`zgarishlar to`plami sifatida qaraydi.
GIT asosi


Boshqa tizimlar ma`lumotlarni har bir fayl uchun asos talqinlarining o`zgarishi
ko`rinishida saqlaydi.


Git o`z ma`lumotlarini bunday ko`rinishda saqlamaydi. Buning o`rniga
Git saqlanuvchi ma`lumotlarni katta bo`lmagan fayllar tizimining
nusxalari to`plami sifatida qaraydi. Har safar siz loyihaning joriy
talqinini fiksirlagan vaqtingizda Git ayni vaqtda loyihaning barcha
fayllar nusxalarini saqlaydi. Samaradorlikni oshirish maqsadida fayl
o`zgartirilmagan bo`lsa bunday fayllarni nusxasini yaratish o`rniga
avvalgi saqlangan nusxaga tegishli yo`llanmani yaratadi. Ushbu jarayon
rasmda ifodalangan.



Git ma`lumotlarni ma`lum bir vaqtdagi holatlarini nusxasi
ko`rinishida saqlaydi.
Bu Git va deyarli barcha boshqa talqinlarni boshqaruvchi
tizimlar orasidagi muhim farqdir.


Ko`p amallarni bajarish uchun Git ga faqat mahalliy fayl va manbalar zarur,
shuningdek odatda tarmoqdagi o`zga kompyuterlardagi ma`lumot ham
kerak emas. Аgar siz tarmoqdagi ushlanib qolishlarga bog`liq bo`lgan
markazlashtirilgan tizimlar bilan ishlagan bo`lsangiz Git ni ishlatib ancha
o`zingizni yengil his qilishingiz tayin. Sababi loyihaning butun tarixi sizning
mahalliy diskingizda saqlanadi va ko`p amallar bir zumda bajariladi.
Deyarli barcha amallar mahalliy


Git ixtiyoriy fayllarni saqlashdan oldin tekshiruv yig`indisini hisoblab
chiqadi va bu faylning indeksi bo`lib xizmat qiladi. Shuning uchun fayl yoki
papka ichidagilarni Git bilmaydigan tarzda o`zgartirib bo`lmaydi. Git ning
bu funksiyasi uning asosi sifatida qurilgan bo`lib, falsafasining muhim
tashkil etuvchilaridan biri hisoblanadi. Аgar ma`lumotlar uzatish vaqtida
yoki diskda buzilsa Git bu haqda doim xabar beradi.
Git – ma`lumotlarning butunligini
ta`minlanishini kuzatadi


Git da siz qilayotgan amaldagi hamma harakatlar faqat ma`lumotlarni omborga qo`shadi.
Tizimni ma`lumotlarni o`chirishga majburlash yoki tizimda biror qaytarib bo`lmaydigan
ishni qilish juda qiyin. Boshqa TBT lar kabi saqlanmagan ma`lumotlarni yo`qotish
mumkin, biroq ularni fiksirlanganidan keyin yo`qotib qo`yish juda qiyin. Bu yanada qiyin
agarda siz o`zgarishlarni boshqa omborga jo`natib tursangiz.
Shuning uchun Git ni ishlatish – ko`ngil to`qlik, chunki nimanidir buzib qo`yishdan
cho`chimasdan bemalol tajriba o`tkazish mumkin
GIT ga ma`lumotlar tez tez qo`shilib turadi


Git da fayllar quyidagi uch holatdan birida bo`lishi mumkin:
fiksirlangan (committed);
O`zgartirilgan (modified);
tayyorlangan (staged).
“Fiksirlangan” fayl sizning mahalliy omboringizda saqlanganligini anglatadi.
“O`zgartirilgan”
fayllarga
o`zgartirilganu
lekin
fiksirlanmaganlar
kiradi.
“Tayyorlangan” fayllar – bu o`zgartirilgan fayllarning navbatdagi jo`natishga
(commit) ajratilganlari.


Shu tariqa GIT ishlatilgan loyihada
uch qism mavjud:
Ishchi katalog (working directory);
Git katalogi (Git directory);
Tayyorlangan fayllar sohasi(staging area).




Siz ishchi katalogingizda fayllarni o`zgartirasiz.
Siz tayyorlangan fayllar sohasiga fayllarni nusxasini qo`shib ularni
tayyorlaysiz.
Siz jo`natasiz. Bu paytda nusxalar tayyorlangan fayllar sohasidan Git
katalogiga saqlanadi.
Git dan foydalangan holatdagi standart ish jarayoni quyidagicha
ko`rinishda :



Download 4.23 Mb.
  1   2




Download 4.23 Mb.
Pdf ko'rish