De lancering van de nieuwe versie van Git, 2.22, werd gepresenteerd. Git is een van de populairste, meest betrouwbare en krachtige versiebeheersystemen en biedt bovendien ontwikkeltools.
Om de integriteit van de geschiedenis en de weerstand tegen verandering achteraf te garanderen, wordt impliciete hashing van alle voorgaande geschiedenis gebruikt bij elke commit en kunnen digitale handtekeningen van individuele tag- en commit-ontwikkelaars ook worden geverifieerd.
In vergelijking met de vorige versie zijn er 745 wijzigingen aangebracht in de nieuwe versie, die is ontwikkeld met de medewerking van 74 ontwikkelaars, van wie 18 voor het eerst aan de ontwikkeling hebben meegewerkt.
Git 2.22 hoogtepunten
Om de momenteel gebruikte lokale branch weer te geven, kunt u nu het commando "git branch-show-current " gebruiken.
Bovendien is sinds versie 1.18 de nieuwe overdrachtsmodus voor de commit-set " git rebase --rebase-merges " beschikbaar, die de vorige optie " --preserve-merges " heeft vervangen , die nu als verouderd is gemarkeerd.
Om de branchstructuur in een portable branch te behouden, kon je de optie " --preserve-merges " gebruiken. Deze optie, uitgevoerd in de interactieve modus ( git rebase -i --preserve-merges ), maakte het mogelijk om de commitgeschiedenis te bewerken, maar garandeerde niet dat de repositorystructuur volledig behouden bleef.
De opvolgermodus " --rebase-merges " stelt u in staat de structuur van wijzigingen in de draagbare branch te behouden, terwijl u beschikt over een volledige set interactieve bewerkingen, waaronder het verwijderen, herschikken en hernoemen van commits.
Met bijvoorbeeld " --rebase-merges " kunnen commits van een losgekoppelde branch naar een nieuwere masterbranch worden uitgevoerd, waarbij de branchstructuur in de draagbare branch behouden blijft en enkele wijzigingen in de notities worden aangebracht om deze direct te committen.
De " git rebase " -bewerking wordt gebruikt om een ​​reeks commits te vervangen door een nieuwe basiscommit, bijvoorbeeld om een ​​aparte branch waarin een nieuwe functionaliteit wordt ontwikkeld, te wijzigen naar de huidige status van de master-branch, inclusief alle fixes die na de branch zijn toegevoegd.
Sublieme backend-ondersteuning
Het ` git bisect` -rapport is bijgewerkt en is nu beter leesbaar , terwijl ` git mergetool` nu ook Sublime Merge (` smerge` ) als backend ondersteunt. Git roept de nieuwe ` post-index-change`- hook aan wanneer het opgeslagen indexbestand verandert, wat handig is voor gevirtualiseerde werkmappen.
Bovendien wordt " git difftool " nu ook buiten een repository uitgevoerd en wordt " git checkout -m <other> " geannuleerd wanneer er een verschil wordt gedetecteerd tussen HEAD en index.
Omdat het inpakken van de index soms lang duurt tijdens het kloonproces, hebben de ontwikkelaars u onderweg een voortgangsbalk gegeven.
Tegelijkertijd communiceert ` git clone` via versie 2 van het protocol dankzij de nieuwe ` switch` serveroptie . Verschillende functies verbeteren de codeaanvulling en de ontwikkelaars hebben ook gewerkt aan de trace2-traceertool.
Het nieuwe Trace2-volgmechanisme biedt een flexibeler en gestructureerder uitvoerformaat. Trace2 maakt het mogelijk om operationele telemetrie- en prestatiegegevens te verzamelen voor een meer gedetailleerde analyse en foutopsporing (de gebruiker wijst de controller toe; er worden geen gegevens extern verzonden).
Prestaties en ontwikkeling
Het ingebouwde differentieelmechanisme van Git is herschreven en ondersteunt nu ` git commit-tree` . De ` pack-redundant` -API en ` git multi-pack-index verify` werken nu sneller in repositories met veel pakketbestanden. Voor ontwikkelaars is het testframework ook bijgewerkt.
Onlangs is ` git stash` in C geïmplementeerd voor ` git rebase` . De C-implementatie is bijgewerkt om te voorkomen dat Git herhaaldelijk hetzelfde bestand overschrijft. ` git diff` werkt nu ook sneller in speciale scenario's waarbij het informatie over blobs verzamelt. Tot slot versnelt `git clone` het verbindingsproces.
Ook de mogelijkheid toegevoegd om te filteren wanneer uitgebreide "git log" -tags die aan commits zijn gekoppeld, worden weergegeven.