{"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\/en\/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\/\">Introduced<\/a> release of a distributed source text management system <a rel=\"nofollow\" href=\"http:\/\/git-scm.com\/\">Git 2.55<\/a>Among the key changes: inclusion of the Rust build by default, implementation of the fsmonitor process for Linux, a new strategy for repackaging the incremental MIDX index, the git history fixup command for fixing commits, optimization of object availability bitmap generation, support for parallel execution of hooks, the git format-rev command. Git Code <a rel=\"nofollow\" href=\"https:\/\/github.com\/git\/git\/\">is distributed<\/a> under license GPLv2+.<\/p>\n<p><\/noindex><\/noindex><\/p>\n<p>Compared to the previous release, the new version includes 505 changes prepared with the participation of 100 developers, 33 of whom participated in the development of Git for the first time.<\/p>\n<p><noindex><\/p>\n<p>Main innovations (<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>the net\/http <a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/git-scm\/git\/-\/commit\/32d5b905909e781786c4735e6bd71503b23e4fb1\">enabled<\/a> support for components in the Rust language. Compiler rustc <a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/git-scm\/git\/-\/blob\/HEAD\/Documentation\/BreakingChanges.adoc\">implemented<\/a> among the build dependencies. To build without Rust, you can use the NO_RUST=1 flag when running the make utility or -Drust=disabled when executing meson configure. The ability to disable the Rust build will be supported until Git 3.0, in which Rust will be <a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=63914\">included<\/a> among the mandatory dependencies. A layer for portability between configurations with SHA-1 and SHA-256 hashes has been implemented in Rust, as well as some internal functions such as encoding and decoding variable-length integer values. In the future, a rework of more significant internal components of Git in Rust is expected.<\/li>\n<li>In the experimental team<a rel=\"nofollow\" href=\"https:\/\/git-scm.com\/docs\/git-history\/2.55.0\">git history<\/a>, a new operation called &laquo;git history fixup&raquo; has been added to allow modification of commit history. The fixup operation enables transferring changes added via git add to an earlier commit and automatically rewriting all subsequent commits, similar to executing the command git commit &#8212;fixup=&lt;commit&gt; followed by git rebase &#8212;autosquash &lt;commit&gt;~.<\/li>\n<li>For the Linux platform, a background process <a rel=\"nofollow\" href=\"https:\/\/git-scm.com\/docs\/git-fsmonitor--daemon\/2.55.0\">fsmonitor<\/a>, monitors changes in the file system using the <a rel=\"nofollow\" href=\"https:\/\/man7.org\/linux\/man-pages\/man7\/inotify.7.html\">inotify<\/a> and enables skipping through the entire working directory when running commands like git status. This can be activated through the setting &laquo;<a rel=\"nofollow\" href=\"https:\/\/git-scm.com\/docs\/git-config#Documentation\/git-config.txt-corefsmonitor\">core.fsmonitor<\/a>&raquo;.<\/li>\n<li>The git repack command has introduced the &#8212;write-midx=incremental mode, which implements a new strategy for updating metadata in the incremental MIDX index (multi-pack index), allowing for bypassing the repacking of the entire index. In the incremental multi-pack index, instead of a single large index containing information about object distribution across pack files, a layered approach is employed \u2014 each layer covers a specific number of pack files and is stored in a separate bitmap file. This structure allows adding object data from new pack files to the index by attaching new layers without rebuilding existing ones. The command git repack &#8212;write-midx=incremental enables the addition of a new layer to the incremental MIDX index, covering recently created pack files. Combined with the repository packing mode &#8212;geometric, this new command allows merging new objects from multiple pack files into one larger pack file and, if necessary, packing and merging several adjacent layers of the incremental MIDX index. This strategy allows the git repack operation to rewrite only the top layers while leaving the old large layers untouched, as well as prevent uncontrolled growth of the layer chain, keeping the total number of layers at a level proportional to the logarithm of the total number of objects.<\/li>\n<li>Significant optimization has been made in the generation of object availability bitmaps due to a new algorithm for traversing the object tree that eliminates unnecessary recursion, caches object positions, sorts bitmaps before combining them with the XOR operation, and has reworked the code for creating pseudo-merge bitmaps (<a rel=\"nofollow\" href=\"https:\/\/git-scm.com\/docs\/gitpacking\/2.55.0#_pseudo_merge_bitmaps\">pseudo-merge<\/a>). In a test repository, the optimizations allowed for a reduction in bitmap generation time from 612 to 294 seconds.<\/li>\n<li>The ability to execute independent processes in parallel has been implemented. <a rel=\"nofollow\" href=\"https:\/\/git-scm.com\/docs\/githooks\">. In general, Airflow hooks are the connection points to external services and libraries. For example,<\/a> in configuration files. Hooks that affect or consider shared state, such as changing commit messages or inspecting indices and the working tree, cannot run in parallel. However, hooks for linting checks and unit testing can be executed simultaneously. Hooks that allow parallel execution are configured using the parameter hook.hook_name.parallel = true. The number of jobs launched simultaneously is determined by the settings hook.jobs, hook..jobs, or the command-line option -j.<\/li>\n<li>In the git pack-objects command, the &#8212;path-walk option has been implemented, allowing for filters such as blob:none, blob:limit=&lt;n&gt;, tree:0, object:type=&lt;type&gt;, sparse:&lt;oid&gt;, and combine:. In a conducted test, discarding blobs during &#8212;path-walk allowed for a 16% reduction in the size of the generated pack file.<\/li>\n<li>The git format-rev command has been added for formatting revisions and object names mentioned in commit lists or found in arbitrary text (for example, it can be used in hooks to process commit messages).<\/li>\n<\/ul>\n<p>       git last-modified | git format-rev --stdin-mode=text --format=%an<\/p>\n<p>       Junio C Hamano\tbuiltin\/commit.c<\/p>\n<ul>\n<li>By default, the majority of terminal control sequences in informational messages and error text sent by the server are escaped. When interacting with a malicious server, such escape sequences could be used to hide or modify output, for example, through escape sequences for cursor movement and text clearing. Support for escape sequences to highlight elements with color is retained.<\/li>\n<li>The git checkout -m command now automatically saves conflicting local changes in the stash area without needing to resolve the conflict immediately.<\/li>\n<li>The git push command has been enhanced to allow pushing a branch to multiple external Git servers with a single command. For instance, to push the main branch not only to the primary server but also to mirrors, you can create a publish group from the servers github, gitlab, and mirror:<\/li>\n<\/ul>\n<p>git config remotes.publish \"github gitlab mirror\"<br \/>\ngit push publish main<\/p>\n<ul>\n<li>The git log --graph command has been enhanced with the --graph-lane-limit= option to limit the number of vertical lanes when visualizing branches, allowing for more screen space for commit data in repositories with many branches.<\/li>\n<\/ul>\n<p>\u2026<br \/>\n* | | | |   619931f561 Merge branch \u2018dl\/posix-unused-warning-clang\u2019<br \/>\n|\\ \\ \\ \\ \\<br \/>\n| * | | | ~ cf48887610 compat\/posix.h: simplify GIT_GNUC_PREREQ() comparison<br \/>\n| * | | | ~ ffd45926dc compat\/posix.h: clean up GIT_GNUC_PREREQ() and UNUSED<br \/>\n|\\ \\ \\ \\ \\~<br \/>\n| * | | | ~ 3f5203eeb4 ls-files: filter pathspec before lstat<\/p>\n<ul>\n<li>The git log and git rev-list commands have been updated with the --max-count-oldest= option, allowing you to select the N oldest commits in the range.<\/li>\n<\/ul>\n<p>Source: <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\/en\/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=\"en_US\" \/>\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\/en\/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\/en\/blog\/news\/git-2-55","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","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\/en\/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\/en\/wp-json\/wp\/v2\/posts\/182406","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=182406"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/182406\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/182407"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=182406"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=182406"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=182406"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}