vydanie distribuovaného systému správy zdrojového kódu . Git je jedným z najpopulárnejších, spoľahlivých a výkonných systémov správy verzií, ktorý poskytuje flexibilné prostriedky pre nelineárny vývoj založený na vetvení a zlúčení vetiev. Na zabezpečenie integrity histórie a odolnosti voči retrospektívnym zmenám sa používa implicitné hashovanie celej predchádzajúcej histórie v každom commite, rovnako je možné overenie digitálnymi podpisami vývojárov jednotlivých tagov a commitov.
V porovnaní s predchádzajúcim vydaním bola do novej verzie prijatá 505 zmien, na ktorých sa podieľalo 77 vývojárov, z ktorých 26 sa zúčastnilo vývoja prvýkrát. Hlavné :
- Boli predstavené experimentálne príkazy „git switch“ a „git restore“, ktoré majú oddeliť vzájomne málo súvisiace možnosti „git checkout“, ako je manipulácia s vetvami (prepínanie a vytváranie) a obnova súborov v pracovnom adresári („git checkout $commit — $filename“) alebo priamo v staging area („—staging“, nemá analóg v „git checkout“). Je potrebné poznamenať, že na rozdiel od „git checkout“ príkaz „git restore“ odstráni neanewrhové súbory z obnovených adresárov („—no-overlay“ ako predvolené).
- Bola pridaná možnosť „git merge —quit“, ktorá, podobne ako „—abort“, zastavuje proces zlúčenia vetiev, ale ponecháva pracovný adresár nedotknutý. Táto možnosť môže byť užitočná v prípade, ak niektoré zo zmien, vykonaných počas manuálneho zlúčenia, je lepšie vymedziť ako samostatný commit.
- Príkazy „git clone“, „git fetch“ a „git push“ teraz zohľadňujú existenciu commitov v súvisiacich repozitároch ();
- možnosti „git blame —ignore-rev“ a „—ignore-revs-file“, ktoré umožňujú preskočiť commit, v ktorých boli vykonané bezvýznamné úpravy (napríklad opravy formátovania);
- Bola pridaná možnosť „git cherry-pick —skip“ na preskočenie konfliktového commitu (zapamätateľná alternatíva pre postup „git reset && git cherry-pick —continue“);
- Bola pridaná konfigurácia status.aheadBehind, ktorá trvalo fixuje možnosť „git status —[no-]ahead-behind“;
- Z tohto vydania príkaz „git log“ predvolene zohľadňuje zmeny vykonané mailmap, podobne ako sa to už deje v git shortlog;
- Značne sa zrýchlila operácia aktualizácie experimentálneho cache grafu commitov (core.commitGraph) predloženého v 2.18. Rovnako sa zrýchlil git for-each-ref pri použití viacerých šablón a znížil sa počet volaní auto-gc pri "git fetch —multiple";
- "git branch —list" teraz vždy zobrazuje detached HEAD na začiatku zoznamu bez ohľadu na lokalitu.
Zdroj: opennet.ru
