{"id":55185,"date":"2020-01-14T00:00:00","date_gmt":"2020-01-13T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/vypusk-raspredelennoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-25"},"modified":"2020-02-18T14:03:16","modified_gmt":"2020-02-18T11:03:16","slug":"vypusk-raspredelennoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-25","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-raspredelennoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-25","title":{"rendered":"Release of the distributed version control system Git 2.25","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.blog\/2020-01-13-highlights-from-git-2-25\/\">Available<\/a><\/noindex> Release of the distributed source code management system <noindex><a rel=\"nofollow\" href=\"http:\/\/git-scm.com\/\">Git 2.25.0<\/a><\/noindex>Git is one of the most popular, reliable, and high-performance version control systems, providing flexible tools for nonlinear development based on branching and merging. To ensure the integrity of the history and resilience against 'backward' changes, implicit hashing of the entire previous history is employed in each commit, and it is also possible to authenticate individual tags and commits through digital signatures by developers. <\/p>\n<p>Compared to the previous release, the new version includes 583 changes prepared with the participation of 84 developers, 32 of whom participated in development for the first time. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.blog\/2020-01-13-highlights-from-git-2-25\/\">Key<\/a><\/noindex>  <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/git\/git\/blob\/master\/Documentation\/RelNotes\/2.25.0.txt\">innovations<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> The possibility of partial cloning is nearing stabilization and full readiness, allowing for the transfer of only a part of the data and working with an incomplete copy of the repository. In a standard clone, all data is copied from the repository, including every version of every file from the change history. For very large repositories, copying data leads to a significant increase in traffic and disk space usage, even if the developer is only interested in a subset of files. To simplify obtaining only part of the working tree of source texts, the experimental command 'sparse-checkout' and the new '--sparse' option for the 'clone' command have been proposed in the new release.\n<p>Previously, the selective cloning process was performed by specifying  <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/git\/git\/blob\/v2.25.0\/Documentation\/rev-list-options.txt#L735-L780\">filters<\/a><\/noindex> to filter out unnecessary content and the '--no-checkout' option to disable the restoration of missing files. After that, before performing the checkout operation, it was required to enable the core.sparseCheckout setting and define the list of excluded path patterns in the .git\/info\/sparse-checkout file. For example, for cloning without blobs and prohibiting the extraction of files from nested directories deeper than 2 levels, one could execute:<\/p>\n<p>   git clone --filter=blob:none --no-checkout \/your\/repository\/here repo<br \/>\n   $ cd repo<br \/>\n   $ cat &gt;.git\/info\/sparse-checkout &lt;EOF<br \/>\n   \/*<br \/>\n   !\/*<br \/>\n   EOF<br \/>\n   $ git config core.sparseCheckout 1<br \/>\n   $ git checkout .<\/p>\n<p>The new command 'git sparse-checkout' greatly simplifies the work and reduces the process of organizing work with an incomplete repository to commands:<\/p>\n<p>   git clone --filter=blob:none --sparse \/your\/repository\/here repo<br \/>\n   git sparse-checkout set \/path\/to\/check\/out<\/p>\n<p>The sparse-checkout command allows you to set a list of paths for checkout (set) without manually configuring .git\/info\/sparse-checkout, as well as to output the current list of paths (list) and enable or disable partial checkout (enable\/disable). <\/p>\n<p>To optimize work with very large repositories and pattern lists, the setting '<noindex><a rel=\"nofollow\" href=\"https:\/\/patchwork.kernel.org\/patch\/11152745\/\">git config core.sparseCheckoutCone<\/a><\/noindex>', which restricts acceptable patterns (instead of arbitrary .gitignore patterns, one can specify which paths and which files in a given subdirectory should be extracted). For instance, if there is a directory 'A\/B\/C' in a large repository and all work is concentrated in the subdirectory 'C', enabling the sparseCheckoutCone mode with the command 'git sparse-checkout set A\/B\/C' will completely extract the contents of 'C', but only the necessary parts for working with 'C' from 'A' and 'B'.<\/p>\n<li class=\"l\"> All mentions of the '--preserve-merges' option have been removed from the documentation ('git rebase -h'), which is deprecated. Instead, for transferring a set of commits, one should use '<noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50831\">git rebase --rebase-merges<\/a><\/noindex>&#171;.\n<li class=\"l\"> To improve the readability of patch messages sent to mailing lists, a new option \"git format-patch --cover-from-description subject\" has been added, which uses the first paragraph of the branch description text as the subject of the cover letter for the patch set.\n<li class=\"l\"> Support for the combination of the command \"git apply --3way\" and the setting \"merge.conflictStyle\" has been implemented (\"git apply\" now considers the conflict description style from merge.conflictStyle when resolving conflicts after attempting to apply the patch file to the repository).\n<li class=\"l\"> The function definition code used in operations such as \"git diff\/grep --show-function\/--function-context\" has been extended with support for defining function boundaries in programs written in the language. <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Elixir_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)\">Elixir<\/a><\/noindex>.\n<li class=\"l\"> In \"git add\", \"git commit\", \"git reset\", and other commands, a new option \"--pathspec-from-file\" has been added, allowing the list of paths to be loaded from a file or from standard input, instead of enumerating them in the command line.\n<li class=\"l\"> The issue with detecting renames at the directory level when writing commits has been resolved. The detection did not work when moving the contents of a subdirectory to the root of the repository.\n<li class=\"l\"> An initial implementation of the reworked command \"git add -i\" has been proposed, allowing modified content to be added interactively, rewritten from Perl to C. A similar rework of the command \"git add -p\" is underway.\n<li class=\"l\"> The \"git log --graph\" command, which generates an ASCII representation of the history graph in the repository, has been refactored. The rework has significantly improved and simplified the output without distorting the history structure, addressing the issue of the graph exceeding the width of the terminal line.\n<li class=\"l\"> The option \"git log --format=..\", which allows changing the output format,<br \/>\nhas been extended to support flags \"l\/L\" for outputting only part of the email address specified before the \"@\" symbol (for example, useful when all developers have all emails in the same domain).<\/p>\n<li class=\"l\"> A subcommand \"set-url\" has been added to the \"git submodule\" command.\n<li class=\"l\"> Test sets have been updated in preparation for the transition to<br \/>\n the SHA-2 hashing algorithm instead of SHA-1.<\/p>\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=52180\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u043e\u0441\u0442\u0443\u043f\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.25.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 &#171;\u0437\u0430\u0434\u043d\u0438\u043c \u0447\u0438\u0441\u043b\u043e\u043c&#187; \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-55185","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=\"\u0414\u043e\u0441\u0442\u0443\u043f\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\" \/>\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-25\" \/>\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.25 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u043e\u0441\u0442\u0443\u043f\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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-raspredelennoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-25\" \/>\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=\"2020-01-13T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:03:16+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.25 | ProHoster","description":"The release of the distributed version control system","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-raspredelennoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-25","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.25 | ProHoster","og:description":"\u0414\u043e\u0441\u0442\u0443\u043f\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","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-raspredelennoj-sistemy-upravleniya-ishodnymi-tekstami-git-2-25","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":"2020-01-13T21:00:00+00:00","article:modified_time":"2020-02-18T11:03:16+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55185","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:48:30","updated":"2022-09-27 23:15:18","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\/55185","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=55185"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/55185\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=55185"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=55185"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=55185"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}