Git 2.35 manbalarni boshqarish tizimining chiqarilishi

Ikki oylik rivojlanishdan so'ng Git 2.35 tarqatilgan manbalarni boshqarish tizimi chiqarildi. Git eng mashhur, ishonchli va yuqori unumli versiyalarni boshqarish tizimlaridan biri bo'lib, tarmoqlanish va birlashtirishga asoslangan moslashuvchan chiziqli bo'lmagan rivojlanish vositalarini taqdim etadi. Tarixning yaxlitligini va retroaktiv o'zgarishlarga chidamliligini ta'minlash uchun har bir topshiriqda butun oldingi tarixning yashirin xeshlanishi qo'llaniladi, shuningdek, ishlab chiquvchilarning raqamli imzolari bilan individual teglar va majburiyatlarni tasdiqlash mumkin.

Oldingi versiya bilan taqqoslaganda, yangi versiya 494 ta ishlab chiquvchi ishtirokida tayyorlangan 93 ta o'zgartirishni o'z ichiga olgan, ulardan 35 tasi birinchi marta ishlab chiqishda ishtirok etgan. Asosiy innovatsiyalar:

  • Git obyektlarini raqamli imzolash uchun SSH kalitlaridan foydalanish imkoniyatlari kengaytirildi. Bir nechta kalitlarning amal qilish muddatini cheklash uchun, OpenSSH direktivalarini qo'llab-quvvatlash "valid-oldin" va "valid-keyin" qo'shildi, ular yordamida kalit ishlab chiquvchilardan biri tomonidan aylantirilgandan so'ng imzolar bilan to'g'ri ishlashni ta'minlashingiz mumkin. Bungacha imzolarni eski va yangi kalit bilan ajratish bilan bog'liq muammo bor edi - agar siz eski kalitni o'chirsangiz, u bilan tuzilgan imzolarni tekshirish imkonsiz bo'ladi va agar siz uni qoldirsangiz, u holda imzolarni tekshirish mumkin bo'ladi. allaqachon boshqa kalit bilan almashtirilgan eski kalit bilan yangi imzolarni yarating. valid-before va valid-keyindan foydalanib, siz imzo yaratilgan vaqtga qarab kalitlar doirasini ajratishingiz mumkin.
  • Birlashma paytida nizolar haqida ma'lumotni ko'rsatish rejimini tanlash imkonini beruvchi merge.conflictStyle sozlamasida "zdiff3" rejimini qo'llab-quvvatlash paydo bo'ldi, bu konflikt boshida yoki oxirida ko'rsatilgan barcha standart chiziqlarni ziddiyatdan tashqariga siljitadi. ma'lumotni yanada ixchamroq taqdim etish imkonini beruvchi hudud.
  • "git stash" buyrug'iga "--stage" rejimi qo'shildi, bu sizga faqat indeksga qo'shilgan o'zgarishlarni yashirish imkonini beradi, masalan, birinchi navbatda murakkab o'zgarishlarni vaqtincha kechiktirish kerak bo'lgan vaziyatda. allaqachon tayyor bo'lgan narsalarni qo'shing va bir muncha vaqt o'tgach, qolganlari bilan shug'ullaning. Rejim "git commit" buyrug'iga o'xshaydi, u faqat indeksga kiritilgan o'zgarishlarni yozadi, lekin "git stash —staged" da yangi majburiyat yaratish o'rniga, natija vaqtincha stash maydonida saqlanadi. O'zgartirishlar kerak bo'lganda, ularni "git stash pop" buyrug'i bilan qaytarish mumkin.
  • "git log" buyrug'iga "--format=%(describe)" yangi format spetsifikatsiyasi qo'shildi, bu "git log" chiqishini "git describe" buyrug'ining chiqishi bilan birlashtirish imkonini beradi. "git describe" parametrlari to'g'ridan-to'g'ri spetsifikator ichida ko'rsatilgan ("-format=%(describe:match=) , istisno = )"), unda siz qisqartirilgan teglarni ham qo'shishingiz mumkin ("—format =% (ta'riflash: teglar =). )") va ob'ektlarni aniqlash uchun o'n oltilik belgilar sonini sozlang ("—format =% (ta'riflash: abbrev =) )"). Masalan, teglarida relizga nomzod yorlig'i bo'lmagan va 8 ta belgidan iborat identifikatorlarni ko'rsatgan oxirgi 8 ta topshiriqni ro'yxatga olish uchun siz quyidagi buyruqdan foydalanishingiz mumkin: $ git log -8 —format='%(describe:exclude=*-rc) *,abbrev=13 )' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-643b.v2-95. gb94bd056 bbc2.34.1f642 v56-95-gffb8f7d v2.34.1-203- gdf9c2980902adeb2.34.1 v640-3-g41b212a2.34.1
  • User.signingKey sozlamalari endi “ssh-” turi bilan cheklanmagan va kalitga toʻliq fayl yoʻlini koʻrsatuvchi yangi turdagi kalitlarni qoʻllab-quvvatlaydi. Muqobil turlar "key::" prefiksi yordamida belgilanadi, masalan, ECDSA kalitlari uchun "key::ecdsa-sha2-nistp256".
  • “-gistogramma” rejimidagi o‘zgarishlar ro‘yxatini yaratish tezligi, shuningdek, ranglar farqidagi bo‘shliqlarni ajratib ko‘rsatishni boshqaruvchi “-color-moved-ws” opsiyasidan foydalanganda sezilarli darajada oshdi.
  • Birlashtirish konfliktlarini tahlil qilish, farqlarni ko'rish yoki qidiruv operatsiyasini bajarishda Vim-ga faylning kerakli pozitsiyasiga aniq o'tish haqida ma'lumot berish uchun foydalaniladigan "git jump" buyrug'i birlashma konfliktlarini qisqartirish imkoniyatini beradi. Masalan, operatsiyalarni faqat "foo" katalogiga cheklash uchun siz "git jump merge - foo" ni belgilashingiz mumkin va "Hujjatlar" katalogini qayta ishlashdan chiqarib tashlash uchun - "git jump merge - ':^Documentation'"
  • Ob'ektlarning o'lchamini ifodalovchi qiymatlar uchun "unsigned long" o'rniga "size_t" turidan foydalanishni standartlashtirish bo'yicha ishlar olib borildi, bu esa 4 Gb dan katta fayllar bilan "toza" va "qora" filtrlaridan foydalanish imkonini berdi. barcha platformalarda, shu jumladan LLP64 ma'lumotlar modeliga ega platformalarda, "unsigned long" turi 4 bayt bilan cheklangan.
  • “-empty=(stop|drop|keep)” opsiyasi “git am” buyrug'iga qo'shildi, bu sizga pochta qutisidan yamoqlarni tahlil qilishda yamoqlarni o'z ichiga olmagan bo'sh xabarlar uchun harakatni tanlash imkonini beradi. “Stop” qiymati butun tuzatish jarayonini tugatadi, “tushirish” bo‘sh yamoqni o‘tkazib yuboradi va “saqlash” bo‘sh majburiyatni yaratadi.
  • “git reset”, “git diff”, “git blame”, “git fetch”, “git pull” va “git ls-files” buyruqlariga qisman indekslarni (siyrak indeks) qo‘llab-quvvatlash qo‘shildi. omborlar , unda qisman klonlash operatsiyalari (siyrak-checkout) amalga oshiriladi.
  • "git sparse-checkout init" buyrug'i eskirgan va "git sparse-checkout set" bilan almashtirilishi kerak.
  • Repozitariyda filiallar va teglar kabi havolalarni saqlash uchun yangi "qayta tiklanadigan" backendning dastlabki amalga oshirilishi qo'shildi. Yangi backend JGit loyihasi tomonidan ishlatiladigan blokli xotiradan foydalanadi va juda katta miqdordagi havolalarni saqlash uchun optimallashtirilgan. Backend hali refs tizimi bilan birlashtirilmagan va amaliy foydalanishga tayyor emas.
  • "git grep" buyrug'ining ranglar palitrasi GNU grep yordam dasturiga mos keladigan tarzda sozlangan.

Manba: opennet.ru

a Izoh qo'shish