Release av distribuerat källkontrollsystem Git 2.23

Introducerad lansering av ett distribuerat källkontrollsystem Git 2.23.0. Git är ett av de mest populära, pålitliga och högpresterande versionskontrollsystemen, som tillhandahåller flexibla icke-linjära utvecklingsverktyg baserade på förgrening och sammanslagning. För att säkerställa historiens integritet och motståndet mot retroaktiva förändringar används implicit hashing av hela den tidigare historien i varje commit, och det är också möjligt att certifiera individuella taggar och commits med digitala signaturer från utvecklare.

Jämfört med den tidigare utgåvan inkluderade den nya versionen 505 ändringar, förberedda med deltagande av 77 utvecklare, varav 26 deltog i utvecklingen för första gången. Grundläggande innovationer:

  • Experimentella kommandon "git switch" och "git restore" introduceras för att separera löst kopplade "git checkout"-funktioner, såsom grenmanipulation (byte och skapande) och återställning av filer i arbetskatalogen ("git checkout $commit - $filename") eller omedelbart i uppställningsområdet ("—staging", har ingen analog i "git checkout"). Det är värt att notera att, till skillnad från "git checkout", tar "git restore" bort ospårade filer från katalogerna som återställs ("--no-overlay" som standard).
  • Lade till alternativet "git merge -quit", som, i likhet med "-avbryt", stoppar processen att slå samman grenar, men lämnar arbetskatalogen orörd. Det här alternativet kan vara användbart om några av ändringarna som görs under en manuell sammanslagning skulle vara att föredra att utfärdas som en separat commit.
  • Kommandona "git clone", "git fetch" och "git push" tar nu hänsyn till närvaron av commits i länkade arkiv (suppleanter);
  • Lagt till alternativen "git blame —ignore-rev" och "—ignore-revs-file" låter dig hoppa över commits som gör mindre ändringar (till exempel formateringsfixar);
  • Lade till alternativet "git cherry-pick —skip" för att hoppa över en motstridig commit (en memorerad analog av sekvensen "git reset && git cherry-pick —fortsätt");
  • Lade till inställningen status.aheadBehind, som permanent fixar alternativet "git status -[no-]ahead-behind";
  • Från och med den här utgåvan tar "git log" som standard hänsyn till ändringar gjorda av mailmap, liknande hur git shortlog redan gör;
  • Uppdateringen av experimentcachen för commit-grafen (core.commitGraph) som introducerades i 2.18 har påskyndats avsevärt. Gjorde även git for-each-ref snabbare när man använder flera mallar och minskade antalet anrop till auto-gc i "git fetch —multiple";
  • "git branch --list" visar nu alltid fristående HEAD i början av listan, oavsett språk.

Källa: opennet.ru

Lägg en kommentar