{"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\/pt\/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\/\">Apresentado<\/a> lan\u00e7amento do sistema distribu\u00eddo de controle de vers\u00f5es <a rel=\"nofollow\" href=\"http:\/\/git-scm.com\/\">Git 2.55<\/a>. Entre as principais mudan\u00e7as: inclus\u00e3o por padr\u00e3o da compila\u00e7\u00e3o com Rust, implementa\u00e7\u00e3o para Linux do processo fsmonitor, nova estrat\u00e9gia de reempacotamento do \u00edndice MIDX incremental, comando git history fixup para corrigir o commit, otimiza\u00e7\u00e3o da gera\u00e7\u00e3o de mapas de disponibilidade de objetos, suporte para execu\u00e7\u00e3o paralela de hooks, comando git format-rev. C\u00f3digo Git <a rel=\"nofollow\" href=\"https:\/\/github.com\/git\/git\/\">\u00e9 distribu\u00eddo<\/a> sob a licen\u00e7a GPLv2+.<\/p>\n<p><\/noindex><\/noindex><\/p>\n<p>Em compara\u00e7\u00e3o com a vers\u00e3o anterior, a nova vers\u00e3o inclui 505 mudan\u00e7as, preparadas com a participa\u00e7\u00e3o de 100 desenvolvedores, 33 dos quais participaram do desenvolvimento do Git pela primeira vez.<\/p>\n<p><noindex><\/p>\n<p>Principais inova\u00e7\u00f5es (<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>Por padr\u00e3o <a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/git-scm\/git\/-\/commit\/32d5b905909e781786c4735e6bd71503b23e4fb1\">inclu\u00edda<\/a> suporte a componentes em Rust. O compilador rustc <a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/git-scm\/git\/-\/blob\/HEAD\/Documentation\/BreakingChanges.adoc\">o sinalizador -k para integra\u00e7\u00e3o com<\/a> entre as depend\u00eancias de constru\u00e7\u00e3o. Para compilar sem Rust, voc\u00ea pode usar a flag NO_RUST=1 ao executar a ferramenta make ou -Drust=disabled ao executar meson configure. A possibilidade de desativar a compila\u00e7\u00e3o com Rust ser\u00e1 mantida at\u00e9 a branch Git 3.0, na qual o Rust ser\u00e1 <a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=63914\">incluso<\/a> entre as depend\u00eancias obrigat\u00f3rias. Uma camada foi implementada em Rust para portabilidade entre configura\u00e7\u00f5es com hashes SHA-1 e SHA-256, al\u00e9m de algumas fun\u00e7\u00f5es internas, como codifica\u00e7\u00e3o e decodifica\u00e7\u00e3o de valores inteiros de comprimento vari\u00e1vel. Espera-se que no futuro uma reformula\u00e7\u00e3o mais significativa de componentes internos do Git seja realizada em Rust.<\/li>\n<li>Na equipe experimental \"<a rel=\"nofollow\" href=\"https:\/\/git-scm.com\/docs\/git-history\/2.55.0\">git history\"<\/a>, foi adicionada a opera\u00e7\u00e3o \u00abgit history fixup\u00bb para corrigir um commit. A opera\u00e7\u00e3o fixup permite mover as altera\u00e7\u00f5es adicionadas via git add para um commit anterior e reescrever automaticamente todos os commits subsequentes, semelhante \u00e0 execu\u00e7\u00e3o do comando git commit \u2014fixup= e iniciando git rebase \u2014autosquash ~.<\/li>\n<li>Para a plataforma Linux, foi implementado um processo em segundo plano <a rel=\"nofollow\" href=\"https:\/\/git-scm.com\/docs\/git-fsmonitor--daemon\/2.55.0\">fsmonitor<\/a>, que monitora mudan\u00e7as no sistema de arquivos usando o mecanismo <a rel=\"nofollow\" href=\"https:\/\/man7.org\/linux\/man-pages\/man7\/inotify.7.html\">inotify<\/a> e permite evitar a varredura de todo o diret\u00f3rio de trabalho ao executar comandos como git status. A ativa\u00e7\u00e3o \u00e9 feita atrav\u00e9s da configura\u00e7\u00e3o \u00ab<a rel=\"nofollow\" href=\"https:\/\/git-scm.com\/docs\/git-config#Documentation\/git-config.txt-corefsmonitor\">core.fsmonitor<\/a>\u00bb.<\/li>\n<li>Na equipe git repack, foi adicionado o modo \u2014write-midx=incremental, que implementa uma nova estrat\u00e9gia de atualiza\u00e7\u00e3o de metadados no \u00edndice MIDX incremental (multi-pack index), permitindo evitar a reempacotamento de todo o \u00edndice. No \u00edndice incremental multi-pack, em vez de um grande \u00edndice contendo informa\u00e7\u00f5es sobre a distribui\u00e7\u00e3o de objetos em arquivos pack, \u00e9 usada uma divis\u00e3o em camadas \u2014 cada camada cobre um determinado n\u00famero de arquivos pack e \u00e9 armazenada em um arquivo bitmap separado. Essa estrutura permite adicionar dados de objetos nos novos arquivos pack ao \u00edndice, anexando novas camadas ao \u00edndice sem reconstruir as camadas existentes. O comando git repack \u2014write-midx=incremental permite adicionar uma nova camada ao \u00edndice MIDX incremental, abrangendo os arquivos pack recentemente criados. Em combina\u00e7\u00e3o com o modo de empacotamento de reposit\u00f3rios \u2014geometric, o novo comando possibilita combinar novos objetos de v\u00e1rios arquivos pack em um arquivo pack maior e, se necess\u00e1rio, realizar empacotamento e fus\u00e3o de v\u00e1rias camadas vizinhas do \u00edndice MIDX incremental. Essa estrat\u00e9gia permite que, ao executar git repack, sejam reescritas apenas as camadas superiores, mantendo as grandes camadas antigas intocadas, al\u00e9m de evitar o crescimento descontrolado da cadeia de camadas, mantendo o n\u00famero total de camadas proporcional ao logaritmo do n\u00famero total de objetos.<\/li>\n<li>A gera\u00e7\u00e3o de bitmaps de disponibilidade de objetos foi significativamente otimizada gra\u00e7as a um novo algoritmo de percurso na \u00e1rvore de objetos, que exclui recurs\u00f5es desnecess\u00e1rias, faz cache das posi\u00e7\u00f5es dos objetos, ordena bitmaps antes de sua jun\u00e7\u00e3o pela opera\u00e7\u00e3o XOR e reformula o c\u00f3digo para a cria\u00e7\u00e3o de bitmaps de pseudo-fus\u00e3o (<a rel=\"nofollow\" href=\"https:\/\/git-scm.com\/docs\/gitpacking\/2.55.0#_pseudo_merge_bitmaps\">pseudo-merge<\/a>). Em um reposit\u00f3rio de teste, as otimiza\u00e7\u00f5es permitiram reduzir o tempo de gera\u00e7\u00e3o de bitmaps de 612 para 294 segundos.<\/li>\n<li>Possibilidade de execu\u00e7\u00e3o paralela de ganchos independentes foi implementada <a rel=\"nofollow\" href=\"https:\/\/git-scm.com\/docs\/githooks\">ganchos<\/a> nos arquivos de configura\u00e7\u00e3o. Hooks que afetam o estado compartilhado ou o consideram, como aqueles que alteram as mensagens de commit ou inspecionam \u00edndices e a \u00e1rvore de trabalho, n\u00e3o podem ser executados em paralelo. No entanto, \u00e9 poss\u00edvel executar hooks para verifica\u00e7\u00e3o por linters e execu\u00e7\u00e3o de testes unit\u00e1rios ao mesmo tempo. Hooks que permitem execu\u00e7\u00e3o paralela s\u00e3o configurados atrav\u00e9s do par\u00e2metro hook.nome_do_hook.parallel = true. O n\u00famero de trabalhos executados simultaneamente \u00e9 determinado pela configura\u00e7\u00e3o hook.jobs, hook.&lt;evento&gt;.jobs ou pela op\u00e7\u00e3o de linha de comando -j.<\/li>\n<li>No comando git pack-objects \u2014path-walk, foi implementada a possibilidade de especificar filtros, como blob:none, blob:limit=, tree:0, object:type=, sparse: e combine:. Em um teste realizado, a exclus\u00e3o de blobs ao executar \u2014path-walk permitiu reduzir o tamanho do arquivo pack gerado em 16%.<\/li>\n<li>Foi adicionada a comando git format-rev para formata\u00e7\u00e3o de revis\u00f5es e nomes de objetos mencionados em listas de commits ou que aparecem em texto arbitr\u00e1rio (por exemplo, pode ser usado em hooks para processar mensagens de 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>Agora, por padr\u00e3o, a maioria das sequ\u00eancias de controle do terminal em mensagens informativas e texto de erro enviados pelo servidor est\u00e1 escapada. Ao se conectar a um servidor malicioso, essas sequ\u00eancias de escape poderiam ser usadas para ocultar ou modificar a sa\u00edda, por exemplo, atrav\u00e9s de sequ\u00eancias de escape para mover o cursor e limpar o texto. O suporte a sequ\u00eancias de escape para destacar elementos em cores foi mantido.<\/li>\n<li>A comando git checkout -m agora salva automaticamente as altera\u00e7\u00f5es locais em conflito na \u00e1rea de stash, sem a necessidade de resolver o conflito imediatamente.<\/li>\n<li>Na comando git push, foi adicionada a capacidade de enviar uma branch para v\u00e1rios servidores Git externos com um \u00fanico comando. Por exemplo, para transferir a branch main n\u00e3o s\u00f3 para o servidor principal, mas tamb\u00e9m para espelhos, voc\u00ea pode criar um grupo publish de servidores 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>O comando git log \u2014graph agora tem a op\u00e7\u00e3o \u2014graph-lane-limit= para limitar o n\u00famero de faixas verticais ao visualizar branches, o que permite deixar espa\u00e7o na tela para os dados sobre commits em reposit\u00f3rios com um grande n\u00famero de branches.<\/li>\n<\/ul>\n<p>\u2026<br \/>\n* | | | |   619931f561 Merge branch &#8216;dl\/posix-unused-warning-clang&#8217;<br \/>\n|\\ \\ \\ \\ \\<br \/>\n| * | | | ~ cf48887610 compat\/posix.h: simplificar a compara\u00e7\u00e3o GIT_GNUC_PREREQ()<br \/>\n| * | | | ~ ffd45926dc compat\/posix.h: limpar GIT_GNUC_PREREQ() e UNUSED<br \/>\n|\\ \\ \\ \\ \\~<br \/>\n| * | | | ~ 3f5203eeb4 ls-files: filtrar pathspec antes do lstat<\/p>\n<ul>\n<li>Nos comandos git log e git rev-list foi adicionada a op\u00e7\u00e3o \u2014max-count-oldest=, que permite selecionar os N commits mais antigos dentro do intervalo.<\/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.3 - 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\/pt\/blog\/news\/git-2-55\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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\/pt\/blog\/news\/git-2-55","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/182406","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=182406"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/182406\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/182407"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=182406"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=182406"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=182406"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}