udgivelse af et distribueret system til administration af kildekoder . Git er et af de mest populære, pålidelige og højtydende versionsstyringssystemer, der tilbyder fleksible værktøjer til ikke-lineær udvikling, baseret på forgrening og sammenfletning af grene. For at sikre integriteten af historien og modstandsdygtighed over for bagudrettede ændringer anvendes implicit hashing af hele den tidligere historie i hver commit, ligesom det er muligt at validere med digitale signaturer fra udviklere af individuelle tags og commits.
Sammenlignet med den tidligere version er der foretaget 505 ændringer i den nye version, forberedt med deltagelse af 77 udviklere, hvoraf 26 deltager i udviklingen for første gang. Hovedpunkterne :
- Der præsenteres eksperimentelle kommandoer «git switch» og «git restore», der har til formål at adskille de lidt relaterede funktioner i «git checkout», såsom håndtering af grene (skift og oprettelse) og gendannelse af filer i arbejdsmappen («git checkout $commit — $filename») eller direkte i staging area («—staging», der ikke har et ækvivalent i «git checkout»). Det skal bemærkes, at i modsætning til «git checkout» fjerner «git restore» uforklarlige filer fra de gendannede mapper («—no-overlay» som standard).
- Der er tilføjet en mulighed «git merge —quit», som på samme måde som «—abort» stopper processen med at sammenflette grene, men efterlader arbejdsmappen urørt. Denne mulighed kan være nyttig, hvis nogle af ændringerne foretaget under manuel sammenfletning foretrækkes at blive lavet som en separat commit.
- Kommandoerne «git clone», «git fetch» og «git push» tager nu højde for tilstedeværelsen af commits i relaterede repositories ();
- mulighederne «git blame —ignore-rev» og «—ignore-revs-file», der gør det muligt at springe over commits med ubetydelige ændringer (for eksempel formateringsrettelser);
- Der er tilføjet en mulighed «git cherry-pick —skip» for at springe et konfliktfyldt commit over (en gemt analog til sekvensen «git reset && git cherry-pick —continue»);
- Der er tilføjet indstillingen status.aheadBehind, der fastgør muligheden «git status —[no-]ahead-behind» permanent;
- Fra denne udgave registrerer «git log» som standard de ændringer, der er foretaget af mailmap, på samme måde som det allerede sker i git shortlog;
- Operationen for at opdatere den i version 2.18 præsenterede eksperimentelle cache af commit-grafen (core.commitGraph) er væsentligt accelereret. Også git for-each-ref er hurtigere, når der bruges flere skabeloner, og antallet af auto-gc kald er reduceret i «git fetch —multiple»;
- «git branch —list» viser nu altid detached HEAD først på listen uanset lokalitet.
Kilde: opennet.ru
