Paglabas ng distributed source control system na Git 2.23

Ipinasa ni paglabas ng isang distributed source control system git 2.23.0. 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 retroaktibong pagbabago, ginagamit ang implicit na pag-hash ng buong nakaraang kasaysayan sa bawat commit, at posible ring patunayan ang mga indibidwal na tag at commit na may mga digital na lagda ng mga developer.

Kung ikukumpara sa nakaraang paglabas, ang bagong bersyon ay may kasamang 505 na pagbabago, na inihanda kasama ang pakikilahok ng 77 mga developer, kung saan 26 ang nakibahagi sa pag-unlad sa unang pagkakataon. Basic mga inobasyon:

  • Ang mga pang-eksperimentong "git switch" at "git restore" na mga utos ay ipinakilala sa paghiwalayin ang maluwag na pinagsamang "git checkout" na mga kakayahan, tulad ng pagmamanipula ng sangay (pagpalit at paglikha) at pagpapanumbalik ng mga file sa gumaganang direktoryo ("git checkout $commit - $filename") o kaagad sa staging area (“—staging”, walang analogue sa “git checkout”). Kapansin-pansin na, hindi tulad ng "git checkout", ang "git restore" ay nag-aalis ng mga hindi sinusubaybayang file mula sa mga direktoryo na nire-restore ("--no-overlay" bilang default).
  • Idinagdag ang opsyon na "git merge -quit", na, katulad ng "-abort", ay huminto sa proseso ng pagsasama-sama ng mga sangay, ngunit iniiwan ang gumaganang direktoryo na hindi nagalaw. Maaaring maging kapaki-pakinabang ang opsyong ito kung ang ilan sa mga pagbabagong ginawa sa panahon ng manu-manong pagsasama ay mas mainam na ibigay bilang isang hiwalay na commit.
  • Ang mga command na "git clone", "git fetch" at "git push" ay isinasaalang-alang na ngayon ang pagkakaroon ng mga commit sa mga naka-link na repository (kahalili);
  • Idinagdag ang “git blame —ignore-rev” at “—ignore-revs-file” na mga opsyon ay nagbibigay-daan sa iyo na laktawan ang mga commit na gumagawa ng maliliit na pagbabago (halimbawa, pag-aayos ng format);
  • Idinagdag ang opsyong “git cherry-pick —skip” para laktawan ang isang sumasalungat na commit (isang kabisadong analogue ng “git reset && git cherry-pick —continue” sequence);
  • Idinagdag ang setting ng status.aheadBehind, na permanenteng nag-aayos sa opsyong "git status -[no-]ahead-behind";
  • Sa paglabas na ito, ang "git log" bilang default ay isinasaalang-alang ang mga pagbabagong ginawa ng mailmap, katulad ng kung paano nagagawa ng git shortlog;
  • Ang pagpapatakbo ng pag-update ng pang-eksperimentong cache ng commit graph (core.commitGraph) na ipinakilala noong 2.18 ay makabuluhang pinabilis. Ginawa ring mas mabilis ang git for-each-ref kapag gumagamit ng maraming template at binawasan ang bilang ng mga tawag sa auto-gc sa “git fetch —multiple”;
  • Ang "git branch --list" ngayon ay palaging nagpapakita ng hiwalay na HEAD sa pinakasimula ng listahan, anuman ang lokal.

Pinagmulan: opennet.ru

Magdagdag ng komento