{"id":182406,"date":"2026-07-01T02:48:39","date_gmt":"2026-07-01T00:48:40","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/git-2-55"},"modified":"2026-07-01T02:48:39","modified_gmt":"2026-07-01T00:48:40","slug":"git-2-55","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/news\/git-2-55","title":{"rendered":"Git 2.55","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/07\/6dbdbc163ff5da36a60137dc1b576b56.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><noindex>      <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/lore.kernel.org\/lkml\/xmqqv7b1w9vr.fsf@gitster.g\/\">Presentato<\/a> rilascio di un sistema distribuito di gestione dei testi sorgente <a rel=\"nofollow\" href=\"http:\/\/git-scm.com\/\">Git 2.55<\/a>. Tra i principali cambiamenti: inclusione predefinita della build con Rust, implementazione per Linux del processo fsmonitor, nuova strategia di ripacchettizzazione dell'indice incrementale MIDX, comando git history fixup per correggere un commit, ottimizzazione della generazione delle mappe di disponibilit\u00e0 degli oggetti, supporto per l'esecuzione parallela dei ganci, comando git format-rev. Codice Git <a rel=\"nofollow\" href=\"https:\/\/github.com\/git\/git\/\">\u00e8 distribuito<\/a> con licenza GPLv2+.<\/p>\n<p><\/noindex><\/noindex><\/p>\n<p>Rispetto all'ultima versione, nella nuova edizione sono stati inclusi 505 cambiamenti, preparati con la partecipazione di 100 sviluppatori, 33 dei quali hanno partecipato per la prima volta allo sviluppo di Git.<\/p>\n<p><noindex><\/p>\n<p>Principali novit\u00e0 (<a rel=\"nofollow\" href=\"https:\/\/github.blog\/open-source\/git\/highlights-from-git-2-55\/\">github.blog<\/a>, <a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/blog\/whats-new-in-git-2-55-0\/\">gitlab.com\/blog<\/a>, <a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/git-scm\/git\/-\/blob\/HEAD\/Documentation\/RelNotes\/2.55.0.adoc\">gitlab.com\/git-scm<\/a>):<\/p>\n<p><\/noindex><\/p>\n<ul>\n<li>Per impostazione predefinita <a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/git-scm\/git\/-\/commit\/32d5b905909e781786c4735e6bd71503b23e4fb1\">attivata<\/a> supporto per i componenti in linguaggio Rust. Il compilatore rustc <a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/git-scm\/git\/-\/blob\/HEAD\/Documentation\/BreakingChanges.adoc\">\u00e8 stata aggiunta<\/a> tra le dipendenze di build. Per compilare senza Rust, \u00e8 possibile utilizzare il flag NO_RUST=1 durante l'esecuzione dello strumento make o -Drust=disabled durante l'esecuzione di meson configure. La possibilit\u00e0 di disabilitare la compilazione con Rust sar\u00e0 supportata fino al ramo Git 3.0, in cui Rust sar\u00e0 <a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=63914\">\u00e8 attivato<\/a> tra le dipendenze obbligatorie. In linguaggio Rust \u00e8 stata implementata un'interfaccia per la portabilit\u00e0 tra configurazioni con hash SHA-1 e SHA-256, cos\u00ec come alcune funzioni interne, come la codifica e la decodifica di valori interi a lunghezza variabile. In futuro \u00e8 prevista la riscrittura in Rust di componenti interni di Git pi\u00f9 significativi.<\/li>\n<li>Nel team sperimentale \"<a rel=\"nofollow\" href=\"https:\/\/git-scm.com\/docs\/git-history\/2.55.0\">git history\"<\/a>, \u00e8 stata aggiunta l'operazione \u00abgit history fixup\u00bb per correggere un commit. L'operazione fixup consente di spostare le modifiche aggiunte tramite git add in un commit precedente e riscrivere automaticamente tutti i successivi commit, similmente all'esecuzione del comando git commit \u2014fixup= e avviando git rebase \u2014autosquash ~.<\/li>\n<li>Per la piattaforma Linux \u00e8 stato implementato un processo in background <a rel=\"nofollow\" href=\"https:\/\/git-scm.com\/docs\/git-fsmonitor--daemon\/2.55.0\">fsmonitor<\/a>, che controlla le modifiche nel file system tramite il meccanismo <a rel=\"nofollow\" href=\"https:\/\/man7.org\/linux\/man-pages\/man7\/inotify.7.html\">inotify<\/a> e permette di non dover eseguire una scansione dell'intero catalogo di lavoro quando si eseguono comandi come git status. L'attivazione avviene tramite la configurazione \u00ab<a rel=\"nofollow\" href=\"https:\/\/git-scm.com\/docs\/git-config#Documentation\/git-config.txt-corefsmonitor\">core.fsmonitor<\/a>\u00bb.<\/li>\n<li>Il comando git repack ha introdotto la modalit\u00e0 \u2014write-midx=incremental, implementando una nuova strategia di aggiornamento dei metadati nell'indice MIDX incrementale (multi-pack index), che evita la necessit\u00e0 di ri-pacchettizzare l'intero indice. Nell'indice multi-pack incrementale, invece di un unico grande indice contenente informazioni sulla distribuzione degli oggetti tra i file pack, si utilizza una suddivisione in livelli \u2014 ogni livello copre un certo numero di file pack e viene memorizzato in un file bitmap separato. Questa struttura consente di aggiungere all'indice dati sugli oggetti in nuovi file pack, allegando nuovi livelli all'indice senza ricostruire i livelli gi\u00e0 esistenti. Il comando git repack \u2014write-midx=incremental consente di aggiungere un nuovo livello all'indice MIDX incrementale, coprendo file pack recentemente creati. In combinazione con la modalit\u00e0 di imballaggio dei repository \u2014geometric, il nuovo comando offre la possibilit\u00e0 di unire nuovi oggetti provenienti da pi\u00f9 file pack in un unico file pack pi\u00f9 grande e, se necessario, di eseguire l'imballaggio e la fusione di pi\u00f9 livelli adiacenti nell'indice MIDX incrementale. Questa strategia consente, durante l'esecuzione di git repack, di riscrivere solo i livelli superiori, mantenendo intatti i vecchi e grandi livelli, oltre a escludere l'espansione incontrollata della catena di livelli, mantenendo il numero totale di livelli a un livello proporzionale al logaritmo del numero totale di oggetti.<\/li>\n<li>\u00c8 stata notevolmente ottimizzata la generazione delle bitmap di disponibilit\u00e0 degli oggetti grazie a un nuovo algoritmo per l'attraversamento dell'albero degli oggetti, che esclude la ricorsione superflua, memorizza nella cache le posizioni degli oggetti, ordina le bitmap prima della loro unione tramite l'operazione XOR e rielabora il codice per la creazione delle bitmap di pseudo-fusione (<a rel=\"nofollow\" href=\"https:\/\/git-scm.com\/docs\/gitpacking\/2.55.0#_pseudo_merge_bitmaps\">pseudo-merge<\/a>). Nel repository di test, queste ottimizzazioni hanno consentito di ridurre il tempo di generazione delle bitmap da 612 a 294 secondi.<\/li>\n<li>\u00c8 stata implementata la possibilit\u00e0 di eseguire in parallelo operazioni indipendenti <a rel=\"nofollow\" href=\"https:\/\/git-scm.com\/docs\/githooks\">hook<\/a> nei file di configurazione. Non possono essere eseguiti contemporaneamente hook che influenzano lo stato condiviso o lo considerano, ad esempio, che modificano i commenti ai commit o ispezionano indici e alberi di lavoro. Tuttavia, \u00e8 possibile eseguire contemporaneamente hook per la verifica con il linter e l'esecuzione di unit test. Gli hook che consentono l'esecuzione parallela possono essere configurati tramite il parametro hook.nome_hook.parallel = true. Il numero di lavori eseguiti simultaneamente \u00e8 determinato dalle impostazioni hook.jobs, hook.&lt;event&gt;.jobs o dall'opzione della riga di comando -j.<\/li>\n<li>Nel comando git pack-objects \u2014path-walk \u00e8 stata implementata la possibilit\u00e0 di specificare filtri, come blob:none, blob:limit=, tree:0, object:type=, sparse: e combine:. Nei test condotti, l'esclusione dei blob durante l'esecuzione di \u2014path-walk ha consentito di ridurre del 16% la dimensione del file pack generato.<\/li>\n<li>\u00c8 stato aggiunto il comando git format-rev per formattare le revisioni e i nomi degli oggetti menzionati nelle liste di commit o che appaiono in testo libero (ad esempio, pu\u00f2 essere utilizzato negli hook per elaborare i commenti ai commit).<\/li>\n<\/ul>\n<p>       git last-modified | git format-rev &#8212;stdin-mode=text &#8212;format=%an<\/p>\n<p>       Junio C Hamano\tbuiltin\/commit.c<\/p>\n<ul>\n<li>Di default, ora \u00e8 abilitato l'escaping della maggior parte delle sequenze di controllo del terminale nei messaggi informativi e nel testo di errore trasmesso dal server. Quando si interagisce con un server dannoso, tali sequenze di escape potrebbero essere utilizzate per nascondere o modificare l'output, ad esempio tramite sequenze di escape per spostare il cursore e pulire il testo. \u00c8 rimasta la compatibilit\u00e0 con le sequenze di escape per evidenziare gli elementi a colori.<\/li>\n<li>Il comando git checkout -m ora salva automaticamente le modifiche locali in conflitto nell'area stash senza la necessit\u00e0 di risolvere immediatamente il conflitto.<\/li>\n<li>Nel comando git push \u00e8 stata aggiunta la possibilit\u00e0 di inviare un ramo a pi\u00f9 server Git esterni con un unico comando. Ad esempio, per trasferire il ramo main non solo al server principale, ma anche ai mirror, \u00e8 possibile creare un gruppo publish dai server github, gitlab e mirror:<\/li>\n<\/ul>\n<p>git config remotes.publish \"github gitlab mirror\"<br \/>\ngit push publish main<\/p>\n<ul>\n<li>Nel comando git log \u2014graph \u00e8 stata aggiunta l'opzione \u2014graph-lane-limit= per limitare il numero di righe verticali durante la visualizzazione dei rami, consentendo di lasciare spazio sullo schermo per i dati sui commit nei repository con un gran numero di rami.<\/li>\n<\/ul>\n<p>&#8230;<br \/>\n* | | | |   619931f561 Unisci il ramo &#8216;dl\/posix-unused-warning-clang&#8217;<br \/>\n|\\ \\ \\ \\ \\<br \/>\n| * | | | ~ cf48887610 compat\/posix.h: semplifica il confronto GIT_GNUC_PREREQ()<br \/>\n| * | | | ~ ffd45926dc compat\/posix.h: riordina GIT_GNUC_PREREQ() e UNUSED<br \/>\n|\\ \\ \\ \\ \\~<br \/>\n| * | | | ~ 3f5203eeb4 ls-files: filtra pathspec prima di lstat<\/p>\n<ul>\n<li>Nei comandi git log e git rev-list \u00e8 stata aggiunta l'opzione \u2014max-count-oldest=, che consente di selezionare i N commit pi\u00f9 vecchi nell'intervallo.<\/li>\n<\/ul>\n<p>Fonte: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/development\/18330405\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0442\u0435\u043a\u0441\u0442\u0430\u043c\u0438 Git 2.55. \u0421\u0440\u0435\u0434\u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439: \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441\u0431\u043e\u0440\u043a\u0438 \u0441 Rust, \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u043b\u044f Linux \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 fsmonitor, \u043d\u043e\u0432\u0430\u044f \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f \u043f\u0435\u0440\u0435\u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e MIDX-\u0438\u043d\u0434\u0435\u043a\u0441\u0430, \u043a\u043e\u043c\u0430\u043d\u0434\u0430 git history fixup \u0434\u043b\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043c\u0438\u0442\u0430, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0431\u0438\u0442\u043e\u0432\u044b\u0445 \u043a\u0430\u0440\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0445\u0443\u043a\u043e\u0432, \u043a\u043e\u043c\u0430\u043d\u0434\u0430 git format-rev. \u041a\u043e\u0434 Git \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 GPLv2+. \u041f\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":8,"featured_media":182407,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-182406","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Erik Peterson\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/news\/git-2-55\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Git 2.55 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/news\/git-2-55\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-07-01T00:48:40+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-07-01T00:48:40+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Git 2.55 | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/git-2-55","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Git 2.55 | ProHoster","og:url":"https:\/\/prohoster.info\/it\/blog\/news\/git-2-55","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2026-07-01T00:48:40+00:00","article:modified_time":"2026-07-01T00:48:40+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"182406","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-08-05 12:22:12","updated":"2026-08-05 12:22:12","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/182406","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=182406"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/182406\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/182407"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=182406"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=182406"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=182406"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}