Git 2.35 source control release

Pagkatapos ng dalawang buwan ng pag-develop, inilabas na ang distributed source control system na Git 2.35. Ang Git ay isa sa pinakasikat, maaasahan at may mataas na pagganap na mga sistema ng kontrol ng bersyon, na nagbibigay ng nababaluktot na non-linear na mga tool sa pagpapaunlad batay sa pagsasanga at pagsasama. Upang matiyak ang integridad ng kasaysayan at paglaban sa mga retroactive na pagbabago, ang implicit na pag-hash ng buong nakaraang kasaysayan ay ginagamit sa bawat commit; posible ring patunayan ang mga indibidwal na tag at commit gamit ang mga digital na lagda ng mga developer.

Kung ikukumpara sa nakaraang paglabas, ang bagong bersyon ay may kasamang 494 na pagbabago, na inihanda kasama ang pakikilahok ng 93 mga developer, kung saan 35 ang nakibahagi sa pag-unlad sa unang pagkakataon. Mga pangunahing inobasyon:

  • Ang mga posibilidad para sa paggamit ng mga SSH key upang digital na lagdaan ang mga bagay sa Git ay pinalawak. Upang limitahan ang panahon ng validity ng ilang mga susi, ang suporta para sa mga direktiba ng OpenSSH na "valid-before" at "valid-after" ay idinagdag, kung saan maaari mong matiyak ang wastong paggana sa mga pirma pagkatapos na mai-rotate ang susi ng isa sa mga developer. Bago ito, nagkaroon ng problema sa paghihiwalay ng mga lagda ng luma at bagong susi - kung tatanggalin mo ang lumang susi, imposibleng i-verify ang mga pirmang ginawa kasama nito, at kung iiwan mo ito, mananatiling posible na lumikha ng mga bagong lagda gamit ang lumang susi, na napalitan na ng isa pang susi. Gamit ang valid-before at valid-after maaari mong paghiwalayin ang saklaw ng mga key batay sa oras na ginawa ang lagda.
  • Sa setting ng merge.conflictStyle, na nagbibigay-daan sa iyong piliin ang mode para sa pagpapakita ng impormasyon tungkol sa mga salungatan sa panahon ng pagsasanib, lumitaw ang suporta para sa mode na "zdiff3", na gumagalaw sa lahat ng karaniwang linya na tinukoy sa simula o pagtatapos ng salungatan sa labas ng salungatan lugar, na nagbibigay-daan para sa isang mas compact na presentasyon ng impormasyon.
  • Ang "--staged" mode ay idinagdag sa "git stash" na utos, na nagpapahintulot sa iyo na itago lamang ang mga pagbabagong idinagdag sa index, halimbawa sa isang sitwasyon kung kailan kailangan mong pansamantalang ipagpaliban ang ilan sa mga kumplikadong pagbabago upang una idagdag ang handa na at harapin ang iba pagkatapos ng ilang sandali. Ang mode ay katulad ng "git commit" na utos, isinusulat lamang ang mga pagbabagong inilagay sa index, ngunit sa halip na lumikha ng bagong commit sa "git stash β€”staged", ang resulta ay nakaimbak sa stash temporary area. Kapag kailangan na ang mga pagbabago, maibabalik ang mga ito gamit ang command na "git stash pop".
  • Ang isang bagong format specifier ay naidagdag sa "git log" na utos, "-format=%(describe)", na nagpapahintulot sa iyo na pagsamahin ang output ng "git log" sa output ng "git describe" command. Ang mga parameter para sa "git describe" ay direktang tinukoy sa loob ng specifier ("-format=%(describe:match= , ibukod= )"), kung saan maaari mo ring isama ang mga pinaikling tag ("β€”format=%(describe:tags= )") at i-configure ang bilang ng mga hexadecimal na character upang matukoy ang mga bagay (β€œβ€”format=%(describe:abbrev= )"). Halimbawa, upang ilista ang huling 8 commit na ang mga tag ay walang tag ng kandidato sa paglabas, at pagtukoy ng mga 8-character na identifier, maaari mong gamitin ang command: $ 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-643-g2edb95c94 v056-2.34.1-g642f56f95 v8g7-b2.34.1b-203-9b-2980902b-2.34.1b-640b-3b-41b 212bd2.34.1 bbc639f36 v65715-4132-gffbXNUMXfXNUMXd vXNUMX-XNUMX- gdfXNUMXcXNUMXadebXNUMX vXNUMX-XNUMX-gXNUMXbXNUMXaXNUMX
  • Sinusuportahan na ngayon ng setting ng user.signingKey ang mga bagong uri ng mga key na hindi limitado sa uri ng "ssh-" at tinutukoy ang buong path ng file patungo sa key. Tinukoy ang mga alternatibong uri gamit ang prefix na "key::", halimbawa "key::ecdsa-sha2-nistp256" para sa mga ECDSA key.
  • Ang bilis ng pagbuo ng listahan ng mga pagbabago sa "β€”histogram" mode, gayundin kapag ginagamit ang opsyong "β€”color-moved-ws", na kumokontrol sa pag-highlight ng mga puwang sa isang color diff, ay kapansin-pansing nadagdagan.
  • Ang utos na "git jump", na ginamit upang magbigay ng impormasyon sa Vim tungkol sa eksaktong pagtalon sa nais na posisyon sa isang file kapag nag-parse ng mga pagsasalungat sa pagsasanib, pagtingin sa mga pagkakaiba, o pagsasagawa ng isang operasyon sa paghahanap, ay nagbibigay ng kakayahang paliitin ang mga pagsasalungat sa pagsasanib na sakop. Halimbawa, upang limitahan ang mga operasyon sa direktoryo ng "foo" lamang, maaari mong tukuyin ang "git jump merge - foo", at upang ibukod ang direktoryo ng "Dokumentasyon" mula sa pagproseso - "git jump merge - ':^Documentation'"
  • Ang trabaho ay ginawa upang i-standardize ang paggamit ng "size_t" na uri sa halip na "unsigned long" para sa mga value na kumakatawan sa laki ng mga bagay, na naging posible na gumamit ng "clean" at "smudge" na mga filter na may mga file na mas malaki sa 4 GB sa lahat ng platform, kabilang ang mga platform na may LLP64 data model , ang uri na "unsigned long" kung saan ay limitado sa 4 byte.
  • Ang opsyong "-empty=(stop|drop|keep)" ay idinagdag sa command na "git am", na nagbibigay-daan sa iyong piliin ang gawi para sa mga walang laman na mensahe na hindi naglalaman ng mga patch kapag nag-parse ng mga patch mula sa mailbox. Ang value na "stop" ay magwawakas sa buong pagpapatakbo ng pag-patch, ang "drop" ay lalaktawan ang isang walang laman na patch, at ang "keep" ay lilikha ng isang walang laman na commit.
  • Nagdagdag ng suporta para sa mga bahagyang index (sparse index) sa mga command na "git reset", "git diff", "git blame", "git fetch", "git pull" at "git ls-files" upang mapabuti ang pagganap at makatipid ng espasyo sa repository , kung saan isinasagawa ang mga partial cloning operations (sparse-checkout).
  • Ang utos na "git sparse-checkout init" ay hindi na ginagamit at dapat palitan ng "git sparse-checkout set".
  • Nagdagdag ng paunang pagpapatupad ng bagong "reftable" na backend para sa pag-iimbak ng mga sanggunian tulad ng mga sangay at tag sa repositoryo. Ang bagong backend ay gumagamit ng block storage na ginagamit ng proyekto ng JGit at na-optimize para sa pag-iimbak ng napakaraming mga sanggunian. Ang backend ay hindi pa isinama sa refs system at hindi pa handa para sa praktikal na paggamit.
  • Ang color palette ng "git grep" na utos ay naayos upang tumugma sa GNU grep utility.

Pinagmulan: opennet.ru

Magdagdag ng komento