Варақаи Git 2.35 идоракунии манбаъ

Пас аз ду моҳи таҳия, системаи идоракунии сарчашмаҳои тақсимшудаи Git 2.35 бароварда шуд. Git яке аз маъмултарин, боэътимод ва сермахсули системаҳои идоракунии версия мебошад, ки асбобҳои тағйирпазири таҳияи ғайрихаттӣ дар асоси шохаҳо ва муттаҳидшавиро таъмин мекунад. Барои таъмини якпорчагии таърих ва муқовимат ба тағиротҳои ретроактивӣ, дар ҳар як супоридани ҳашингии ғайримустақими тамоми таърихи қаблӣ истифода мешавад; инчунин мумкин аст, ки тегҳо ва ӯҳдадориҳои инфиродӣ бо имзои рақамии таҳиягарон тасдиқ карда шаванд.

Дар муқоиса бо версияи қаблӣ, версияи нав 494 тағиротро дар бар мегирад, ки бо иштироки 93 таҳиягар омода шудааст, ки 35 нафари онҳо бори аввал дар таҳия ширкат кардаанд. Навовариҳои асосӣ:

  • Имкониятҳои истифодаи калидҳои SSH барои ба таври рақамӣ имзо кардани объектҳои Git васеъ карда шуданд. Барои маҳдуд кардани мӯҳлати эътибори якчанд калидҳо, дастгирии дастурҳои OpenSSH "valid-pefor" ва "valid-after" илова карда шудааст, ки шумо метавонед кори дурусти имзоҳоро пас аз гардиши калид аз ҷониби яке аз таҳиягарон таъмин кунед. Пеш аз ин, мушкили ҷудо кардани имзоҳо бо калиди кӯҳна ва нав вуҷуд дошт - агар шумо калиди кӯҳнаро нест кунед, санҷиши имзоҳои бо он гузошташуда ғайриимкон хоҳад буд ва агар шумо онро тарк кунед, пас имкон боқӣ мемонад бо калиди кӯҳна, ки аллакай бо калиди дигар иваз шудааст, имзоҳои нав эҷод кунед. Бо истифода аз valid-prefor and valid-after шумо метавонед доираи калидҳоро вобаста ба вақти эҷоди имзо ҷудо кунед.
  • Дар танзимоти merge.conflictStyle, ки ба шумо имкон медиҳад, ки режими намоиши маълумот дар бораи ихтилофҳо ҳангоми якҷояшавӣ интихоб карда шавад, дастгирии режими "zdiff3" пайдо шуд, ки ҳамаи хатҳои стандартии дар ибтидо ё охири низоъро берун аз конфликт интиқол медиҳад. минтақа, ки барои пешниҳоди бештари иттилоот имкон медиҳад.
  • Реҷаи "--staged" ба фармони "git stash" илова карда шудааст, ки ба шумо имкон медиҳад, ки танҳо тағиротҳои ба индекс иловашударо пинҳон кунед, масалан, дар вазъияте, ки ба шумо лозим аст, ки баъзе тағйироти мураккабро муваққатан ба таъхир андозед, то аввал. он чизеро, ки аллакай тайёр аст, илова кунед ва пас аз муддате бо дигарон кор кунед. Режим ба фармони "git commit" шабоҳат дорад, ки танҳо тағиротҳои дар индекс ҷойгиршударо менависад, аммо ба ҷои эҷод кардани ӯҳдадории нав дар "git stash —stage", натиҷа дар минтақаи муваққатии stash нигоҳ дошта мешавад. Вақте ки тағирот лозим аст, онҳоро бо фармони "git stash pop" баргардонидан мумкин аст.
  • Ба фармони "git log" мушаххаскунандаи формати нави "--format=%(describe)" илова карда шуд, ки ба шумо имкон медиҳад баромади "git log"-ро бо баромади фармони "git describe" якҷоя кунед. Параметрҳои "git describe" мустақиман дар дохили мушаххаскунанда муайян карда мешаванд (“—format=%(describe:match=,exclude=)”), ки метавонанд тегҳои стенографияро дар бар гиранд (“—format=%() тавсиф кунед: tags=)") ва танзим кардани шумораи аломатҳои шонздаҳӣ барои муайян кардани объектҳо ("-format=%(тафсир: abbrev=)"). Масалан, барои номбар кардани 8 супориши охирин, ки тегҳояшон теги номзади релиз надоранд ва муайян кардани идентификаторҳои 8 аломат, шумо метавонед фармонро истифода баред: $ git log -8 —format='%(tasvir:exclude=*-rc *, abbrev=13 )' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-643b.v2-95b. gb94bd056 bbc2.34.1f642 v56-95-gffb8f7d v2.34.1-203- gdf9c2980902adeb2.34.1 v640-3-g41b212a2.34.1
  • Танзимоти user.signingKey ҳоло намудҳои нави калидҳоро дастгирӣ мекунад, ки бо навъи "ssh-" маҳдуд нестанд ва роҳи пурраи файлро ба калид муайян мекунанд. Навъҳои алтернативӣ бо истифода аз префикси "key::" муайян карда мешаванд, масалан "key::ecdsa-sha2-nistp256" барои калидҳои ECDSA.
  • Суръати тавлиди рӯйхати тағирот дар реҷаи "-гистограмма", инчунин ҳангоми истифодаи опсияи "-color-moved-ws", ки равшансозии ҷойҳоро дар фарқияти ранг назорат мекунад, ба таври назаррас афзоиш ёфт.
  • Фармони "git jump", ки барои ба Vim додани маълумот дар бораи ҷаҳиши дақиқ ба мавқеи дилхоҳ дар файл ҳангоми таҳлили конфликтҳои якҷоякунӣ, дидани фарқиятҳо ё иҷрои амалиёти ҷустуҷӯ истифода мешавад, имкон медиҳад, ки конфликтҳои якҷояшуда маҳдуд карда шаванд. Масалан, барои маҳдуд кардани амалҳо танҳо бо директорияи "foo", шумо метавонед "git jump merge - foo" -ро таъин кунед ва директорияи "Documentation" -ро аз коркард хориҷ кунед - "git jump merge - ‘:^Documentation'"
  • Корҳо оид ба стандартикунонии истифодаи навъи "size_t" ба ҷои "unsigned long" барои арзишҳое, ки андозаи объектҳоро ифода мекунанд, анҷом дода шуд, ки имкон дод филтрҳои "тоза" ва "дуғ" бо файлҳои калонтар аз 4 ГБ дар ҳама платформаҳо, аз ҷумла платформаҳои дорои модели маълумотии LLP64, навъи "unsigned long", ки дар он бо 4 байт маҳдуд аст.
  • Ба фармони "git am" опсияи "-empty=(стоп|тарки|нигоҳ)" илова карда шудааст, ки ба шумо имкон медиҳад рафтори паёмҳои холӣ, ки часбҳоро дар вақти таҳлили часпакҳо аз қуттии почта интихоб кунед. Қимати "стоп" тамоми амалиёти часпакро қатъ мекунад, "партофтан" ямоқи холиро мегузаронад ва "нигоҳ кардан" ӯҳдадории холӣ эҷод мекунад.
  • Барои беҳтар кардани кор ва сарфа кардани ҷой дар фармонҳои "git reset", "git diff", "git blame", "git fetch", "git pull" ва "git ls-files" дастгирии индексҳои қисман (индекси камёфт) илова карда шуд. репозиторийҳо, ки дар онҳо амалиёти қисман клонкунӣ (саёҳати камёфт) анҷом дода мешавад.
  • Фармони "git sparse-checkout init" бекор карда шудааст ва бояд бо "git sparse-checkout set" иваз карда шавад.
  • Татбиқи ибтидоии пуштибонии нави "reftable" барои нигоҳ доштани истинодҳо ба монанди шохаҳо ва барчаспҳо дар анбор илова карда шуд. Бозгашти нав нигаҳдории блоки аз ҷониби лоиҳаи JGit истифодашавандаро истифода мебарад ва барои нигоҳ доштани миқдори хеле зиёди истинодҳо оптимизатсия шудааст. Бозгашт то ҳол бо системаи refs муттаҳид нашудааст ва барои истифодаи амалӣ омода нест.
  • Палитраи рангҳои фармони "git grep" барои мувофиқат бо утилитаи GNU grep танзим карда шудааст.

Манбаъ: opennet.ru

Илова Эзоҳ