{"id":35080,"date":"2019-10-31T22:02:12","date_gmt":"2019-10-31T19:02:12","guid":{"rendered":"https:\/\/prohoster.info\/blog\/vypusk-raspredelennoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-22\/"},"modified":"2019-10-31T22:02:12","modified_gmt":"2019-10-31T19:02:12","slug":"vypusk-raspredelennoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-22","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-raspredelennoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-22","title":{"rendered":"Release of the distributed version control system Git 2.22","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/lkml.org\/lkml\/2019\/6\/7\/117\">Introduced<\/a><\/noindex> Release of the distributed source code management system <noindex><a rel=\"nofollow\" href=\"http:\/\/git-scm.com\/\">Git 2.22.0<\/a><\/noindex>Git is one of the most popular, reliable, and high-performance version control systems, providing flexible tools for non-linear development based on branching and merging. Implicit hashing of all previous history in each commit is used to ensure the integrity of history and resilience to retroactive changes. Digital signatures from developers can also be used to verify specific tags and commits. <\/p>\n<p>Compared to the previous release, the new version includes 745 changes made with the participation of 74 developers, 18 of whom are contributing for the first time. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.blog\/2019-06-07-highlights-from-git-2-22\/\">Key<\/a><\/noindex>  <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/git\/git\/blob\/master\/Documentation\/RelNotes\/2.22.0.txt\">innovations<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> Starting from release 1.18, the new merge commit set transfer mode 'git rebase --rebase-merges' has replaced the old option '--preserve-merges', which is now marked as deprecated. The 'git rebase' operation is used to replace a series of commits with a new base commit, for example, to shift a separate branch in which some new feature is being developed to the current state of the master branch, which includes fixes added after the branch point:\n<p>                o \u2014 o \u2014 o (my-feature)<\/p>\n<p>              \/<\/p>\n<p>o \u2014 o \u2014 o \u2014 o \u2014 o (master)<\/p>\n<p>                            o \u2014 o \u2014 o (my-feature)<\/p>\n<p>                          \/<\/p>\n<p>o \u2014 o \u2014 o \u2014 o \u2014 o (master)<\/p>\n<p>To maintain the branching structure in the transferable branch, the option '--preserve-merges' could previously be used, which when run in interactive mode (git rebase -i --preserve-merges) allowed editing the commit history but did not guarantee complete preservation of the repository structure. The new mode '--rebase-merges' allows preserving the change structure in the transferable branch while providing a full set of interactive operations, including deletion, regrouping, and renaming of commits. <\/p>\n<p>For example, '--rebase-merges' <noindex><a rel=\"nofollow\" href=\"https:\/\/i2.wp.com\/user-images.githubusercontent.com\/443245\/58998948-3f76e700-87b8-11e9-9930-a20ce809fcd5.gif?resize=1908%2C1038&#038;ssl=1\">, rather than taking focus.<\/a><\/noindex> to rebase commits from a separate branch onto a newer master branch while preserving the branching structure in the rebased branch and making some on-the-fly changes to the commit messages.<\/p>\n<li class=\"l\"> Support has been added for creating a new branch based on the result of determining the merge base of two other branches (merge base, binding to a common ancestor) using constructs 'git branch new A\u2026B' and 'git checkout -b new A\u2026B', where 'A\u2026B' implies the determination of the merge base between the two specified commits, similar to how 'git checkout A\u2026B' moves HEAD to the base commit and 'diff A\u2026B' shows the changes between commit 'B' and the common ancestor with commit 'A'.\n<p>For example, when working on a separate branch my-feature, the suggested feature can be utilized when it is necessary to start from another branch, such as from the same point in the master branch from which the my-feature branch was extracted. Previously, this required manually examining the change log, which created inconvenience with a large change history, then executing 'git merge-base master my-feature' to calculate the hash of the merge base between the master and my-feature branches and create a new branch relative to the common ancestor 'git branch my-other-feature hash'. In Git 2.22, to create a branch relative to the merge base of two other branches, the syntax 'git branch my-other-feature A\u2026B' can be used;<\/p>\n<li class=\"l\"> A new option &#171;git branch &#8212;show-current&#187; has been added to display the name of the branch obtained when performing the checkout operation;\n<li class=\"l\"> A new option &#171;git checkout &#8212;no-overlay &#8212; dir&#187; has been added, allowing the contents of the dir directory to be reset to match the state of the master branch during the checkout operation. For example, if there is a file in the local copy of the dir directory that is missing in the master branch, it will be left alone by default when executing &#171;git checkout master &#8212; dir&#187; but will be deleted if the &#171;&#8212;no-overlay&#187; option is specified;\n<li class=\"l\"> The &#171;git diff&#187; command now employs a universal API for parsing options, which has standardized the handling of options with other git utilities. For instance, in &#171;git diff&#187;, all options now have their antagonists available (&#171;&#8212;function-context&#187; and &#171;&#8212;no-function-context&#187;);\n<li class=\"l\"> Added the ability to filter attached extended tags (&#171;trailer&#187; &#8212; additional information flags such as Signed-off-by and Co-authored-by) when displaying &#171;git log&#187; for commits. Tags can be filtered by both key and value, for example:<br \/>\n&#171;git log &#8212;pretty=&#187;%(trailers:key=Reviewed-by,valueonly)&#187;;<\/p>\n<li class=\"l\">  A new tracing mechanism Trace2 has been added, offering a more flexible and structured output format. Trace2 allows gathering telemetry about the operations performed and performance data for more detailed analysis and debugging (the handler is user-defined, no data is sent externally);\n<li class=\"l\"> The &#171;git bisect&#187; report has become more readable, now clearly highlighting problematic commits and providing a summary of changes for each file (in terms of the number of lines changed);\n<li class=\"l\"> The heuristics for detecting directory renames have been revised to eliminate false rename tag assignments. Directories that raise doubts are now marked as conflicting.\n<li class=\"l\"> A warning is now output when attempting to set a tag on another tag, which is usually done by mistake and can lead to a label being set on the wrong commit (for example, a command like &#171;git tag -f -m &#171;updated message&#187; my-tag1 my-tag2&#8243; will create a tag on an old tag, while the developer expected the new tag to be set on the commit referenced by the old tag);\n<li class=\"l\"> Generation for bitmap repositories (disk structure &#171;reachability bitmaps&#187;) has been enabled, preserving data about the sets of objects available for each commit and allowing quick determination of the existence of a base object. This structure significantly reduces the execution time of data retrieval operations (git fetch).\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Source: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50831\">opennet.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 \u0432\u044b\u043f\u0443\u0441\u043a \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.22.0. Git \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445, \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0445 \u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0439 \u0433\u0438\u0431\u043a\u0438\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u043d\u0435\u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0431\u0430\u0437\u0438\u0440\u0443\u044e\u0449\u0438\u0435\u0441\u044f \u043d\u0430 \u043e\u0442\u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u0438 \u0438 \u0441\u043b\u0438\u044f\u043d\u0438\u0438 \u0432\u0435\u0442\u043e\u043a. \u0414\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0438 \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u0438 \u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c \u0437\u0430\u0434\u043d\u0438\u043c \u0447\u0438\u0441\u043b\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043d\u0435\u044f\u0432\u043d\u043e\u0435 \u0445\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0439 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u0435, \u0442\u0430\u043a\u0436\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u0435\u043d\u0438\u0435 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u043c\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-35080","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432\u044b\u043f\u0443\u0441\u043a \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.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-raspredelennoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-22\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\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\udd47\u0412\u044b\u043f\u0443\u0441\u043a \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.22 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432\u044b\u043f\u0443\u0441\u043a \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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-raspredelennoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-22\" \/>\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=\"2019-10-31T19:02:12+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:02:12+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\udd47Release of the distributed version control system Git 2.22 | ProHoster","description":"The release of the distributed version control system Git has been presented.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-raspredelennoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-22","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\udd47\u0412\u044b\u043f\u0443\u0441\u043a \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.22 | ProHoster","og:description":"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432\u044b\u043f\u0443\u0441\u043a \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.","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-raspredelennoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-22","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":"2019-10-31T19:02:12+00:00","article:modified_time":"2019-10-31T19:02:12+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35080","title":null,"description":null,"keywords":null,"keyphrases":null,"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":null,"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":"2026-01-21 21:45:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:56:40","updated":"2026-01-21 21:45:19","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\/35080","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\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=35080"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/35080\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=35080"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=35080"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=35080"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}