{"id":321400,"date":"2021-04-13T21:00:28","date_gmt":"2021-04-13T21:00:28","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=321400"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=321400","title":{"rendered":"\u041a\u043e\u043c\u043c\u0438\u0442\u044b \u2014 \u044d\u0442\u043e \u0441\u043d\u0438\u043c\u043a\u0438, \u0430 \u043d\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f"},"content":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9c1\/ad3\/392\/9c1ad33921842631c21d918c0286c169.png\" width=\"781\" height=\"383\"><figcaption><\/figcaption><\/figure>\n<p>Git \u0438\u043c\u0435\u0435\u0442 \u0440\u0435\u043f\u0443\u0442\u0430\u0446\u0438\u044e \u0437\u0430\u043f\u0443\u0442\u044b\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043d\u0430\u0442\u044b\u043a\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u044e \u0438 \u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0432\u043e\u0434\u044f\u0442 \u0432 \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u0435. \u042d\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 &#171;\u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0445&#187; \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0445, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a git cherry-pick \u0438\u043b\u0438 git rebase. \u041f\u043e \u043c\u043e\u0435\u043c\u0443 \u043e\u043f\u044b\u0442\u0443, \u043f\u0435\u0440\u0432\u043e\u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u043f\u0443\u0442\u0430\u043d\u0438\u0446\u044b \u2014 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u044f \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432 \u043a\u0430\u043a <em>\u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439<\/em>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0442\u0430\u0441\u043e\u0432\u0430\u0442\u044c. \u041e\u0434\u043d\u0430\u043a\u043e <strong>\u043a\u043e\u043c\u043c\u0438\u0442\u044b <\/strong>\u2014<strong> \u044d\u0442\u043e \u043d\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f, \u0430 \u0441\u043d\u0438\u043c\u043a\u0438! <\/strong>\u042f \u0441\u0447\u0438\u0442\u0430\u044e, \u0447\u0442\u043e Git \u0441\u0442\u0430\u043d\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c, \u0435\u0441\u043b\u0438 \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0437\u0430\u043d\u0430\u0432\u0435\u0441 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043a\u0430\u043a \u043e\u043d \u0445\u0440\u0430\u043d\u0438\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f. \u0418\u0437\u0443\u0447\u0438\u0432 \u043c\u043e\u0434\u0435\u043b\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u044b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u043d\u043e\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a git cherry-pick \u0438 git rebase. <\/p>\n<hr>\n<p>\u0415\u0441\u043b\u0438 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0443\u0433\u043b\u0443\u0431\u0438\u0442\u044c\u0441\u044f <em>\u043f\u043e-\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c\u0443<\/em>, \u0447\u0438\u0442\u0430\u0439\u0442\u0435 <a href=\"https:\/\/git-scm.com\/book\/en\/v2\/Git-Internals-Git-Objects\">&nbsp;\u0433\u043b\u0430\u0432\u0443<\/a> \u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 Git (Git internals) \u043a\u043d\u0438\u0433\u0438 Pro Git. \u042f \u0431\u0443\u0434\u0443 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u043c <a href=\"https:\/\/github.com\/git\/git\">git\/git<\/a> \u0432\u0435\u0440\u0441\u0438\u0438 v2.29.2. \u041f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0439\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0437\u0430 \u043c\u043d\u043e\u0439, \u0447\u0442\u043e\u0431\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u043e\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n<h3>\u0425\u0435\u0448\u0438 \u2014 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432<\/h3>\n<p>\u0421\u0430\u043c\u043e\u0435 \u0432\u0430\u0436\u043d\u043e\u0435, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u043e Git-\u043e\u0431\u044a\u0435\u043a\u0442\u0430\u0445, \u2014 \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e Git \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043f\u043e <em>\u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0430<\/em> (OID \u0434\u043b\u044f \u043a\u0440\u0430\u0442\u043a\u043e\u0441\u0442\u0438), \u0434\u0430\u0451\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0438\u043c\u044f. <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 OID, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 git rev-parse. \u041a\u0430\u0436\u0434\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442, \u043f\u043e \u0441\u0443\u0442\u0438, \u2014 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b, \u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c <a href=\"https:\/\/git-scm.com\/docs\/git-cat-file\">\u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 git cat-file -p<\/a>.<\/p>\n<p>\u041c\u044b \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438 \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e OID \u0434\u0430\u043d\u044b \u0432 \u0432\u0438\u0434\u0435 \u0443\u043a\u043e\u0440\u043e\u0447\u0435\u043d\u043d\u043e\u0439 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u0421\u0442\u0440\u043e\u043a\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u0430 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0438\u043c\u0435\u043b \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0439 \u0441 \u043d\u0435\u0439 OID. \u0415\u0441\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u043c OID, \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0435 OID.<\/p>\n<pre><code class=\"bash\">$ git cat-file -t e0c03 error: short SHA1 e0c03 is ambiguous hint: The candidates are: hint: e0c03f27484 commit 2016-10-26 - contrib\/buildsystems: ignore irrelevant files in Generators\/ hint: e0c03653e72 tree hint: e0c03c3eecc blob fatal: Not a valid object name e0c03<\/code><\/pre>\n<h3>\u0411\u043b\u043e\u0431\u044b \u2014 \u044d\u0442\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u043e\u0432<\/h3>\n<p>\u041d\u0430 \u043d\u0438\u0436\u043d\u0435\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0431\u043b\u043e\u0431\u044b \u2014 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430. \u0427\u0442\u043e\u0431\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c OID \u0444\u0430\u0439\u043b\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0440\u0435\u0432\u0438\u0437\u0438\u0438, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 git rev-parse HEAD:&lt;path&gt;, \u0430 \u0437\u0430\u0442\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430 \u2014 git cat-file -p &lt;oid&gt;.<\/p>\n<pre><code>$ git rev-parse HEAD:README.md eb8115e6b04814f0c37146bbe3dbc35f3e8992e0  $ git cat-file -p eb8115e6b04814f0c37146bbe3dbc35f3e8992e0 | head -n 8 [![Build status](https:\/\/github.com\/git\/git\/workflows\/CI\/PR\/badge.png)](https:\/\/github.com\/git\/git\/actions?query=branch%3Amaster+event%3Apush)  Git - fast, scalable, distributed revision control system =========================================================  Git is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations and full access to internals.<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u044f \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u044e \u0444\u0430\u0439\u043b README.md \u043d\u0430 \u043c\u043e\u0451\u043c \u0434\u0438\u0441\u043a\u0435, \u0442\u043e git status \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0434\u0438\u0442, \u0447\u0442\u043e \u0444\u0430\u0439\u043b \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f, \u0438 \u0445\u044d\u0448\u0438\u0440\u0443\u0435\u0442 \u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435. \u041a\u043e\u0433\u0434\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0442\u0435\u043a\u0443\u0449\u0438\u043c OID \u0432 HEAD:README.md, git status \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u043e \u0444\u0430\u0439\u043b\u0435 \u043a\u0430\u043a \u043e &#171;\u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043d\u0430 \u0434\u0438\u0441\u043a\u0435&#187;. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432\u0438\u0434\u043d\u043e, \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u043b\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0441 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c \u0432 HEAD.<\/p>\n<h3>\u0414\u0435\u0440\u0435\u0432\u044c\u044f \u2014 \u044d\u0442\u043e \u0441\u043f\u0438\u0441\u043a\u0438 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432<\/h3>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0431\u043b\u043e\u0431\u044b \u0445\u0440\u0430\u043d\u044f\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430, \u043d\u043e \u043d\u0435 \u0435\u0433\u043e \u0438\u043c\u044f. \u0418\u043c\u0435\u043d\u0430 \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0438\u0437 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 Git \u2014 <strong>\u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432<\/strong>. \u0414\u0435\u0440\u0435\u0432\u043e \u2014 \u044d\u0442\u043e \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0443\u0442\u0435\u0439 \u0432 \u043f\u0430\u0440\u0435 \u0441 \u0442\u0438\u043f\u0430\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0440\u0435\u0436\u0438\u043c\u0430\u043c\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 OID \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u043f\u0443\u0442\u0438. \u041f\u043e\u0434\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u0432\u0438\u0434\u0435 \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0435\u0440\u0435\u0432\u044c\u044f \u043c\u043e\u0433\u0443\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u0434\u0435\u0440\u0435\u0432\u044c\u044f!<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ee7\/92d\/c69\/ee792dc6922ad1268da213c6a0378387.png\" width=\"400\" height=\"240\"><figcaption><\/figcaption><\/figure>\n<p>\u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430\u043c\u0438, \u0447\u0442\u043e\u0431\u044b \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439. \u041a\u0440\u0430\u0441\u043d\u044b\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u044b \u2014 \u043d\u0430\u0448\u0438 \u0431\u043b\u043e\u0431\u044b, \u0430 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u2014 \u0434\u0435\u0440\u0435\u0432\u044c\u044f.<\/p>\n<pre><code class=\"bash\">$ git rev-parse HEAD^{tree} 75130889f941eceb57c6ceb95c6f28dfc83b609c  $ git cat-file -p 75130889f941eceb57c6ceb95c6f28dfc83b609c  | head -n 15 100644 blob c2f5fe385af1bbc161f6c010bdcf0048ab6671ed    .cirrus.yml 100644 blob c592dda681fecfaa6bf64fb3f539eafaf4123ed8    .clang-format 100644 blob f9d819623d832113014dd5d5366e8ee44ac9666a    .editorconfig 100644 blob b08a1416d86012134f823fe51443f498f4911909    .gitattributes 040000 tree fbe854556a4ae3d5897e7b92a3eb8636bb08f031    .github 100644 blob 6232d339247fae5fdaeffed77ae0bbe4176ab2de    .gitignore 100644 blob cbeebdab7a5e2c6afec338c3534930f569c90f63    .gitmodules 100644 blob bde7aba756ea74c3af562874ab5c81a829e43c83    .mailmap 100644 blob 05f3e3f8d79117c1d32bf5e433d0fd49de93125c    .travis.yml 100644 blob 5ba86d68459e61f87dae1332c7f2402860b4280c    .tsan-suppressions 100644 blob fc4645d5c08bd005238fc72cfa709495d8722e6a    CODE_OF_CONDUCT.md 100644 blob 536e55524db72bd2acf175208aef4f3dfc148d42    COPYING 040000 tree a58410edddbdd133cca6b3322bebe4fb37be93fa    Documentation 100755 blob ca6ccb49866c595c80718d167e40cfad1ee7f376    GIT-VERSION-GEN 100644 blob 9ba33e6a141a3906eb707dd11d1af4b0f8191a55    INSTALL<\/code><\/pre>\n<p>\u0414\u0435\u0440\u0435\u0432\u044c\u044f \u0434\u0430\u044e\u0442 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043f\u043e\u0434\u043f\u0443\u043d\u043a\u0442\u0443 \u0438 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0442\u0430\u043a\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u043a\u0430\u043a \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 \u0444\u0430\u0439\u043b\u044b \u0432 Unix, \u0442\u0438\u043f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 (blob \u0438\u043b\u0438 tree) \u0438 OID \u043a\u0430\u0436\u0434\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438. \u041c\u044b \u0432\u044b\u0440\u0435\u0437\u0430\u0435\u043c \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 15 \u0432\u0435\u0440\u0445\u043d\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u043d\u043e \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c grep, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u0434\u0435\u0440\u0435\u0432\u0435 \u0435\u0441\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c README.md, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 OID \u0431\u043b\u043e\u0431\u0430.<\/p>\n<pre><code>$ git cat-file -p 75130889f941eceb57c6ceb95c6f28dfc83b609c | grep README.md 100644 blob eb8115e6b04814f0c37146bbe3dbc35f3e8992e0    README.md<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043f\u0443\u0442\u0435\u0439 \u0434\u0435\u0440\u0435\u0432\u044c\u044f \u043c\u043e\u0433\u0443\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u0431\u043b\u043e\u0431\u044b \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0434\u0435\u0440\u0435\u0432\u044c\u044f. \u0418\u043c\u0435\u0439\u0442\u0435 \u0432 \u0432\u0438\u0434\u0443, \u0447\u0442\u043e \u044d\u0442\u0438 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u0438\u0434\u0443\u0442 \u0432 \u043f\u0430\u0440\u0435 \u0441 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 \u043f\u0443\u0442\u0435\u0439, \u043d\u043e \u043c\u044b \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u044d\u0442\u0438 \u0438\u043c\u0435\u043d\u0430 \u043d\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430\u0445.<\/p>\n<p>\u0421\u0430\u043c\u043e \u0434\u0435\u0440\u0435\u0432\u043e \u043d\u0435 \u0437\u043d\u0430\u0435\u0442, \u0433\u0434\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u043e\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f, \u0442\u043e \u0435\u0441\u0442\u044c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u0434\u0435\u0440\u0435\u0432\u043e \u2014 \u0440\u043e\u043b\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u0414\u0435\u0440\u0435\u0432\u043e, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f &lt;ref&gt;^{tree}, \u043e\u0441\u043e\u0431\u043e\u0435 \u2014 \u044d\u0442\u043e \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e. \u0422\u0430\u043a\u043e\u0435 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043e \u043d\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435 \u0438\u0437 \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0430.<\/p>\n<h3>\u041a\u043e\u043c\u043c\u0438\u0442\u044b \u2014 \u044d\u0442\u043e \u0441\u043d\u0430\u043f\u0448\u043e\u0442\u044b<\/h3>\n<p><strong>\u041a\u043e\u043c\u043c\u0438\u0442<\/strong> \u2014 \u044d\u0442\u043e \u0441\u043d\u0438\u043c\u043e\u043a \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0441\u0432\u043e\u0451 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u043d\u0438\u043c\u043a\u0430. <\/p>\n<p>\u0412 \u043a\u043e\u043c\u043c\u0438\u0442\u0435 \u0435\u0441\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a <em>\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432<\/em>, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c \u0441\u043d\u0438\u043c\u043a\u0430\u043c. \u041a\u043e\u043c\u043c\u0438\u0442 \u0431\u0435\u0437 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u2014 \u044d\u0442\u043e \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u043a\u043e\u043c\u043c\u0438\u0442, \u0430 \u043a\u043e\u043c\u043c\u0438\u0442 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f\u043c\u0438 \u2014 \u044d\u0442\u043e \u043a\u043e\u043c\u043c\u0438\u0442 \u0441\u043b\u0438\u044f\u043d\u0438\u044f. <\/p>\n<p>\u041a\u043e\u043c\u043c\u0438\u0442\u044b \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u0441\u043d\u0438\u043c\u043a\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0430\u0432\u0442\u043e\u0440\u0430 \u0438 \u043a\u043e\u043c\u043c\u0438\u0442\u0442\u0435\u0440\u0430 (\u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0438\u043c\u044f, \u0430\u0434\u0440\u0435\u0441 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b \u0438 \u0434\u0430\u0442\u0443) \u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0435. \u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0435 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u0430 \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u2014 \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0446\u0435\u043b\u044c \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u043f\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f\u043c.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/620\/1e8\/e5f\/6201e8e5f303d96faf7c52d87e0862d1.png\" width=\"399\" height=\"268\"><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u043c\u043c\u0438\u0442 \u0432 v2.29.2 \u0432 Git-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u0440\u0435\u043b\u0438\u0437, \u0442\u0430\u043a\u0436\u0435 \u043e\u043d \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d, \u0430 \u0435\u0433\u043e \u0430\u0432\u0442\u043e\u0440 \u2014 \u0447\u043b\u0435\u043d \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 Git.<\/p>\n<pre><code class=\"bash\">$ git rev-parse HEAD 898f80736c75878acc02dc55672317fcc0e0a5a6  \/c\/_git\/git ((v2.29.2)) $ git cat-file -p 898f80736c75878acc02dc55672317fcc0e0a5a6 tree 75130889f941eceb57c6ceb95c6f28dfc83b609c parent a94bce62b99be35f2ee2b4c98f97c222e7dd9d82 author Junio C Hamano &lt;gitster@pobox.com&gt; 1604006649 -0700 committer Junio C Hamano &lt;gitster@pobox.com&gt; 1604006649 -0700  Git 2.29.2  Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;<\/code><\/pre>\n<p>\u0417\u0430\u0433\u043b\u044f\u043d\u0443\u0432 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 git log, \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0435, \u043e\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u0431 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043c\u0435\u0436\u0434\u0443 \u044d\u0442\u0438\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u043c \u0438 \u0435\u0433\u043e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c. <\/p>\n<pre><code>$ git cat-file -p 16b0bb99eac5ebd02a5dcabdff2cfc390e9d92ef tree d0e42501b1cf65395e91e22e74f75fc5caa0286e parent 56706dba33f5d4457395c651cf1cd033c6c03c7a author Jeff King &amp;lt;peff@peff.net&amp;gt; 1603436979 -0400 committer Junio C Hamano &amp;lt;gitster@pobox.com&amp;gt; 1603466719 -0700  am: fix broken email with --committer-date-is-author-date  Commit e8cbe2118a (am: stop exporting GIT_COMMITTER_DATE, 2020-08-17) rewrote the code for setting the committer date to use fmt_ident(), rather than setting an environment variable and letting commit_tree() handle it. But it introduced two bugs:  - we use the author email string instead of the committer email  - when parsing the committer ident, we used the wrong variable to compute the length of the email, resulting in it always being a zero-length string  This commit fixes both, which causes our test of this option via the rebase \"apply\" backend to now succeed.  Signed-off-by: Jeff King &amp;lt;peff@peff.net&amp;gt; Signed-off-by: Junio C Hamano &amp;lt;gitster@pobox.com&amp;gt;<\/code><\/pre>\n<p><em>\u041a\u0440\u0443\u0433\u0438<\/em> \u043d\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430\u0445 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u043c\u043c\u0438\u0442\u044b:<\/p>\n<ul>\n<li>\n<p>\u041a\u0432\u0430\u0434\u0440\u0430\u0442\u044b \u2014 \u044d\u0442\u043e <strong>\u0431\u043b\u043e\u0431\u044b<\/strong>. \u041e\u043d\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0422\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u2014 \u044d\u0442\u043e <strong>\u0434\u0435\u0440\u0435\u0432\u044c\u044f<\/strong>. \u041e\u043d\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0440\u0443\u0433\u0438 \u2014 \u044d\u0442\u043e <strong>\u043a\u043e\u043c\u043c\u0438\u0442\u044b<\/strong>. \u0421\u043d\u0430\u043f\u0448\u043e\u0442\u044b \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0412\u0435\u0442\u0432\u0438 \u2014 \u044d\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438<\/h3>\n<p>\u0412 Git \u043c\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u043c\u0441\u044f \u043f\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0438 \u0432\u043d\u043e\u0441\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043d\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u044f\u0441\u044c \u043a OID. \u042d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0432\u0435\u0442\u0432\u0438 \u0434\u0430\u044e\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0441 \u043a\u043e\u043c\u043c\u0438\u0442\u044b. \u0412\u0435\u0442\u043a\u0430 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c main \u2014 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0441\u0441\u044b\u043b\u043a\u0430 \u0432 Git, \u043e\u043d\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f refs\/heads\/main. \u0424\u0430\u0439\u043b\u044b \u0441\u0441\u044b\u043b\u043e\u043a \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u043d\u0430 OID \u043a\u043e\u043c\u043c\u0438\u0442\u0430. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u0442\u0438 \u0441\u0441\u044b\u043b\u043a\u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u044b.<\/p>\n<p>\u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0432\u0435\u0442\u043a\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043e\u0442 Git-\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u041a\u043e\u043c\u043c\u0438\u0442\u044b, \u0434\u0435\u0440\u0435\u0432\u044c\u044f \u0438 \u0431\u043b\u043e\u0431\u044b \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b (\u0438\u043c\u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b), \u044d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0432\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435. \u0418\u0437\u043c\u0435\u043d\u0438\u0432 \u0435\u0433\u043e, \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0434\u0440\u0443\u0433\u043e\u0439 \u0445\u044d\u0448 \u0438, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043d\u043e\u0432\u044b\u0439 OID \u0441\u043e \u0441\u0441\u044b\u043b\u043a\u043e\u0439 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442! <\/p>\n<p>\u0412\u0435\u0442\u043a\u0438 \u0438\u043c\u0435\u043d\u0443\u044e\u0442\u0441\u044f \u043f\u043e \u0441\u043c\u044b\u0441\u043b\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, trunk [\u0441\u0442\u0432\u043e\u043b] \u0438\u043b\u0438 my-special-object. \u0412\u0435\u0442\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0438 \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0435\u0451 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438. \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430 HEAD \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0432\u0435\u0442\u043a\u0443. \u041a\u043e\u0433\u0434\u0430 \u043a\u043e\u043c\u043c\u0438\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 HEAD, \u043e\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u0432\u0435\u0442\u043a\u0438. \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0442\u043a\u0443 \u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c HEAD \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <a href=\"https:\/\/git-scm.com\/docs\/git-switch#Documentation\/git-switch.txt--cltnew-branchgt\">\u0444\u043b\u0430\u0433\u0430 git -c<\/a>:<\/p>\n<pre><code>$ git switch -c my-branch Switched to a new branch 'my-branch' $ cat .git\/refs\/heads\/my-branch 1ec19b7757a1acb11332f06e8e812b505490afc6 $ cat .git\/HEAD ref: refs\/heads\/my-branch<\/code><\/pre>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u043a\u043e\u0433\u0434\u0430 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0430\u0441\u044c my-branch, \u0442\u0430\u043a\u0436\u0435 \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d \u0444\u0430\u0439\u043b (.git\/refs\/heads\/my-branch) \u0441 \u0442\u0435\u043a\u0443\u0449\u0438\u043c OID \u043a\u043e\u043c\u043c\u0438\u0442\u0430, \u0430 \u0444\u0430\u0439\u043b .git\/HEAD \u0431\u044b\u043b \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u044d\u0442\u0443 \u0432\u0435\u0442\u043a\u0443. \u0422\u0435\u043f\u0435\u0440\u044c, \u0435\u0441\u043b\u0438 \u043c\u044b \u043e\u0431\u043d\u043e\u0432\u0438\u043c HEAD, \u0441\u043e\u0437\u0434\u0430\u0432 \u043d\u043e\u0432\u044b\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u044b, \u0432\u0435\u0442\u043a\u0430 my-branch \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u0442\u0430\u043a, \u0447\u0442\u043e \u0441\u0442\u0430\u043d\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u044d\u0442\u043e\u0442 \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043c\u043c\u0438\u0442!<\/p>\n<h3>\u041e\u0431\u0449\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430<\/h3>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0432\u0441\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443. \u0412\u0435\u0442\u0432\u0438 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u043a\u043e\u043c\u043c\u0438\u0442\u044b, \u043a\u043e\u043c\u043c\u0438\u0442\u044b \u2014 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u044b \u0438 \u0438\u0445 \u043a\u043e\u0440\u043d\u0435\u0432\u044b\u0435 \u0434\u0435\u0440\u0435\u0432\u044c\u044f, \u0434\u0435\u0440\u0435\u0432\u044c\u044f \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u0431\u043b\u043e\u0431\u044b \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0434\u0435\u0440\u0435\u0432\u044c\u044f, \u0430 \u0431\u043b\u043e\u0431\u044b \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0438 \u043d\u0430 \u0447\u0442\u043e. \u0412\u043e\u0442 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u0441\u0440\u0430\u0437\u0443:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/888\/cf3\/00b\/888cf300b5d5d7f2314dbdbffe77dfb0.png\" width=\"781\" height=\"383\"><figcaption><\/figcaption><\/figure>\n<p>\u0412\u0440\u0435\u043c\u044f \u043d\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0435 \u043e\u0442\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e. \u0421\u0442\u0440\u0435\u043b\u043a\u0438 \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u043c \u0438 \u0435\u0433\u043e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f\u043c\u0438 \u0438\u0434\u0443\u0442 \u0441\u043f\u0440\u0430\u0432\u0430 \u043d\u0430\u043b\u0435\u0432\u043e. \u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u043e\u0434\u043d\u043e \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e. HEAD \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0437\u0434\u0435\u0441\u044c \u043d\u0430 \u0432\u0435\u0442\u043a\u0443 main, \u0430 main \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0441\u0430\u043c\u044b\u0439 \u043d\u0435\u0434\u0430\u0432\u043d\u0438\u0439 \u043a\u043e\u043c\u043c\u0438\u0442. <\/p>\n<p>\u041a\u043e\u0440\u043d\u0435\u0432\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0443 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u0440\u0430\u0441\u043a\u0438\u043d\u0443\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434 \u043d\u0438\u043c, \u0443 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432 \u0435\u0441\u0442\u044c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u043d\u0430 \u044d\u0442\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0441\u0442\u0440\u0435\u043b\u043a\u0438, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043a\u043e\u0440\u043d\u0435\u0432\u044b\u0445 \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432! \u042d\u0442\u0438 \u0434\u0435\u0440\u0435\u0432\u044c\u044f \u0441\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043f\u043e \u0438\u0445 OID (\u0438\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043d\u0438\u043c\u043a\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043f\u0438\u0439 \u043e\u0434\u043d\u0438\u0445 \u0438 \u0442\u0435\u0445 \u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c Git \u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%94%D0%B5%D1%80%D0%B5%D0%B2%D0%BE_%D1%85%D0%B5%D1%88%D0%B5%D0%B9\">\u0434\u0435\u0440\u0435\u0432\u043e \u0445\u0435\u0448\u0435\u0439<\/a>.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u043f\u043e\u0447\u0435\u043c\u0443 \u043a\u043e\u043c\u043c\u0438\u0442\u044b \u2014 \u044d\u0442\u043e \u0441\u043d\u0438\u043c\u043a\u0438: \u043e\u043d\u0438 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u043f\u043e\u043b\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u043a\u043e\u043c\u043c\u0438\u0442\u0430!<\/p>\n<h3>\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439<\/h3>\n<p>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043a\u043e\u043c\u043c\u0438\u0442\u044b \u2014 \u044d\u0442\u043e \u0441\u043d\u0438\u043c\u043a\u0438, \u043c\u044b \u0447\u0430\u0441\u0442\u043e \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043a\u043e\u043c\u043c\u0438\u0442 \u0432 \u0435\u0433\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0438\u043b\u0438 \u0432\u0438\u0434\u0438\u043c \u0435\u0433\u043e <a href=\"http:\/\/github.com\/git\/git\/commit\/16b0bb99eac5ebd02a5dcabdff2cfc390e9d92ef\">&nbsp;\u043d\u0430 GitHub \u043a\u0430\u043a diff<\/a>. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0436\u0435 \u0434\u0435\u043b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0435 \u0447\u0430\u0441\u0442\u043e \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435.<em> \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u043e\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438<\/em> \u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u043d\u0438\u043c\u043a\u0430 \u043f\u0443\u0442\u0451\u043c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0440\u043d\u0435\u0432\u044b\u0445 \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432 \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u0438 \u0435\u0433\u043e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f. Git \u043c\u043e\u0436\u0435\u0442 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0435 \u0441\u043d\u0438\u043c\u043a\u0438, \u043d\u043e \u0438 \u0434\u0432\u0430 \u043b\u044e\u0431\u044b\u0445 \u0441\u043d\u0438\u043c\u043a\u0430 \u0432\u043e\u043e\u0431\u0449\u0435.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0434\u0432\u0430 \u043a\u043e\u043c\u043c\u0438\u0442\u0430, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0438\u0445 \u043a\u043e\u0440\u043d\u0435\u0432\u044b\u0435 \u0434\u0435\u0440\u0435\u0432\u044c\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430. \u0417\u0430\u0442\u0435\u043c \u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u044c\u044f\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u043f\u043e\u0438\u0441\u043a \u0432 \u0433\u043b\u0443\u0431\u0438\u043d\u0443, \u0441\u043b\u0435\u0434\u0443\u044f \u043f\u043e \u043f\u0430\u0440\u0430\u043c, \u043a\u043e\u0433\u0434\u0430 \u043f\u0443\u0442\u0438 \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430 \u0438\u043c\u0435\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 OID. <\/p>\n<p>\u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043d\u0438\u0436\u0435 \u043a\u043e\u0440\u043d\u0435\u0432\u044b\u0435 \u0434\u0435\u0440\u0435\u0432\u044c\u044f \u0438\u043c\u0435\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f docs, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e \u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0438\u0445. \u042d\u0442\u0438 \u0434\u0435\u0440\u0435\u0432\u044c\u044f \u0438\u043c\u0435\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f M.md, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0434\u0432\u0430 \u0431\u043b\u043e\u0431\u0430 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u043e \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0438\u0445 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435. \u0412\u043d\u0443\u0442\u0440\u0438 docs N.md \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u0442\u043e\u0442 \u0436\u0435 \u0441\u0430\u043c\u044b\u0439, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0438\u0445 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u043c\u0443 \u0434\u0435\u0440\u0435\u0432\u0443. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0432\u0438\u0434\u0438\u0442, \u0447\u0442\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 things \u0438\u043c\u0435\u044e\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 OID, \u0442\u0430\u043a \u0436\u0435 \u043a\u0430\u043a \u0438 \u0437\u0430\u043f\u0438\u0441\u0438 README.md.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ca2\/877\/e16\/ca2877e169ce35ef80169a6cac04b5fc.png\" width=\"439\" height=\"265\"><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0435 \u0432\u044b\u0448\u0435 \u043c\u044b \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438, \u0447\u0442\u043e \u0434\u0435\u0440\u0435\u0432\u043e things \u043d\u0435 \u043f\u043e\u0441\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u043d\u0438\u043a\u043e\u0433\u0434\u0430, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u043d\u0435 \u043f\u043e\u0441\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u043d\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u0435\u0433\u043e \u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0443\u0442\u0435\u0439 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u043a\u043e\u043c\u043c\u0438\u0442\u044b \u2014 \u044d\u0442\u043e \u0441\u043d\u0438\u043c\u043a\u0438, \u043c\u043e\u0436\u043d\u043e \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u043b\u044e\u0431\u044b\u043c\u0438 \u0434\u0432\u0443\u043c\u044f \u043a\u043e\u043c\u043c\u0438\u0442\u0430\u043c\u0438. \u041f\u043e\u0447\u0435\u043c\u0443 \u0442\u043e\u0433\u0434\u0430 \u044d\u0442\u043e\u0442 \u0444\u0430\u043a\u0442 \u043d\u0435 \u043e\u0431\u0449\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d? \u041f\u043e\u0447\u0435\u043c\u0443 \u043d\u043e\u0432\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043d\u0430\u0442\u044b\u043a\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u0438\u0434\u0435\u044e \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043a\u043e\u043c\u043c\u0438\u0442 \u2014 \u044d\u0442\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435?<\/p>\n<p>\u041e\u0434\u043d\u0430 \u0438\u0437 \u043c\u043e\u0438\u0445 \u043b\u044e\u0431\u0438\u043c\u044b\u0445 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0439 \u2014 \u0434\u0443\u043b\u0438\u0437\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432 \u043a\u0430\u043a <a href=\"https:\/\/www.thirtythreeforty.net\/posts\/2020\/01\/the-wave-particle-duality-of-git-commits\/\">\u0434\u0443\u0430\u043b\u0438\u0437\u043c \u0447\u0430\u0441\u0442\u0438\u0446<\/a>, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438\u043d\u043e\u0433\u0434\u0430 \u043a\u043e\u043c\u043c\u0438\u0442\u044b \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u0441\u043d\u0438\u043c\u043a\u0438, <em>\u0430 <\/em>\u0438\u043d\u043e\u0433\u0434\u0430 \u2014 \u043a\u0430\u043a \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f. \u0421\u0443\u0442\u044c \u0434\u0435\u043b\u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0432\u0438\u0434\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f Git-\u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u2014 \u0432 \u043f\u0430\u0442\u0447\u0430\u0445.<\/p>\n<h3>\u041f\u043e\u0434\u043e\u0436\u0434\u0438\u0442\u0435, \u0430 \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043f\u0430\u0442\u0447?<\/h3>\n<p>\u041f\u0430\u0442\u0447 \u2014 \u044d\u0442\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442, \u0433\u0434\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u043a\u043e\u0434\u043e\u0432\u0443\u044e \u0431\u0430\u0437\u0443. \u041f\u0430\u0442\u0447\u0438 \u2014 \u044d\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u0430\u043c\u044b\u0445 \u0440\u0430\u0437\u0440\u043e\u0437\u043d\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434 \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043a\u043e\u0434\u043e\u043c \u0431\u0435\u0437 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432 \u0432 Git. \u0412\u0438\u0434\u043d\u043e, \u043a\u0430\u043a \u043f\u0430\u0442\u0447\u0438 \u043f\u0435\u0440\u0435\u0442\u0430\u0441\u043e\u0432\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 <a href=\"https:\/\/lore.kernel.org\/git\">\u0441\u043f\u0438\u0441\u043a\u0435 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 Git<\/a>.<\/p>\n<p>\u041f\u0430\u0442\u0447 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u0443 \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u044d\u0442\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0435\u043c\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u043e\u043c diff. \u0418\u0434\u0435\u044f \u0442\u0430\u043a\u043e\u0432\u0430: \u043d\u0435\u043a\u0438\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u043a\u0430\u043a \u043e\u043f\u0440\u0430\u0432\u0434\u0430\u043d\u0438\u0435 <em>\u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u0430\u0442\u0447\u0430<\/em>, \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u043e\u0442 \u043a\u043e\u043f\u0438\u0438 \u043a\u043e\u0434\u0430 \u043d\u0430\u0448\u0435\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430.<\/p>\n<p>Git \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043c\u0438\u0442 \u0432 \u043f\u0430\u0442\u0447 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <a href=\"https:\/\/git-scm.com\/docs\/git-format-patch\">git format-patch<\/a>. \u0417\u0430\u0442\u0435\u043c \u043f\u0430\u0442\u0447 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0451\u043d \u043a Git-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <a href=\"https:\/\/git-scm.com\/docs\/git-apply\">git application<\/a>. \u0412 \u043f\u0435\u0440\u0432\u044b\u0435 \u0434\u043d\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0442\u0430\u043a\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u043c\u0435\u043d\u0430 \u0434\u043e\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043b, \u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043f\u0435\u0440\u0435\u0448\u043b\u0438 \u043d\u0430 \u043e\u0431\u043c\u0435\u043d \u043a\u043e\u043c\u043c\u0438\u0442\u0430\u043c\u0438 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u043f\u0443\u043b-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u044b.<\/p>\n<p>\u0421\u0430\u043c\u0430\u044f \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0430\u0442\u0447 <em>\u0442\u0435\u0440\u044f\u0435\u0442 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e<\/em>, \u0430 \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043c\u043c\u0438\u0442 \u0438\u043c\u0435\u0435\u0442 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432 \u0441 \u0432\u0430\u0448\u0438\u043c HEAD. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u043c\u043c\u0438\u0442, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0435 \u0441 \u0442\u0435\u043c \u0436\u0435 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c, \u0447\u0442\u043e \u0438 \u0440\u0430\u043d\u044c\u0448\u0435, \u0438\u0437-\u0437\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043a\u043e\u043c\u043c\u0438\u0442\u0430, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u0442\u0435\u0440 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f! \u0412\u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u0430 Git \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 &#171;\u0430\u0432\u0442\u043e\u0440\u0430&#187;, \u0438 &#171;\u043a\u043e\u043c\u043c\u0438\u0442\u0442\u0435\u0440\u0430&#187;.<\/p>\n<p>\u0421\u0430\u043c\u0430\u044f \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043f\u0430\u0442\u0447\u0430\u043c\u0438 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0430\u0442\u0447 \u0442\u0440\u0443\u0434\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0432\u0430\u0448 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f. \u041f\u043e\u0442\u0435\u0440\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432 \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u044f\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432.<\/p>\n<p>\u0418\u0434\u0435\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043f\u0430\u0442\u0447\u0435\u0439 \u0441 \u043c\u0435\u0441\u0442\u0430 \u043d\u0430 \u043c\u0435\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0448\u043b\u0430 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043c\u0430\u043d\u0434 Git \u043a\u0430\u043a &#171;\u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432&#187;. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0436\u0435 \u0434\u0435\u043b\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432 <em>\u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f<\/em>, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u043d\u043e\u0432\u044b\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u044b.<\/p>\n<h3>\u0415\u0441\u043b\u0438 \u043a\u043e\u043c\u043c\u0438\u0442\u044b \u2014 \u044d\u0442\u043e \u043d\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 git cherry-pick?<\/h3>\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430 [git cherry-pick \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043c\u043c\u0438\u0442 \u0441 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u043c \u043e\u0442\u043b\u0438\u0447\u0438\u0435\u043c \u043e\u0442 &lt;oid&gt;, \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u2014 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043a\u043e\u043c\u043c\u0438\u0442. Git \u0432 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0442\u0430\u043a\u0438\u0435 \u0448\u0430\u0433\u0438:<\/p>\n<ol>\n<li>\n<p>\u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 &lt;oid&gt; \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u0438 \u0435\u0433\u043e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u043a \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 HEAD.<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043c\u043c\u0438\u0442, \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u043e\u0432\u043e\u043c\u0443 \u0440\u0430\u0431\u043e\u0447\u0435\u043c\u0443 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0443, \u0430 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u2014 HEAD.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0443 HEAD \u0432 \u044d\u0442\u043e\u0442 \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043c\u043c\u0438\u0442.<\/p>\n<\/li>\n<\/ol>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e2e\/bad\/225\/e2ebad225c0130244233586f0090b858.png\" width=\"477\" height=\"362\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u0432\u044b\u0432\u043e\u0434 git log -1 -p HEAD \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441 \u0432\u044b\u0432\u043e\u0434\u043e\u043c git log -1 -p &lt;oid&gt;.<\/p>\n<p>\u0412\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043c\u044b \u043d\u0435 &#171;\u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u043b\u0438&#187; \u043a\u043e\u043c\u043c\u0438\u0442 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u0431\u044b\u043b \u043f\u043e\u0432\u0435\u0440\u0445 \u043d\u0430\u0448\u0435\u0433\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e HEAD, \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043c\u043c\u0438\u0442, \u0438 \u0435\u0433\u043e \u0432\u044b\u0432\u043e\u0434 diff \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441\u043e \u0441\u0442\u0430\u0440\u044b\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u043c.<\/p>\n<h3>\u0410 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 git rebase?<\/h3>\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430 git rebase \u2014 \u044d\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u043c\u043c\u0438\u0442\u044b \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e. \u0412 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0444\u043e\u0440\u043c\u0435 \u044d\u0442\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0441\u0435\u0440\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434 git cherry-pick, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u043f\u043e\u0432\u0435\u0440\u0445 \u0434\u0440\u0443\u0433\u043e\u0433\u043e, \u043e\u0442\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0430.<\/p>\n<p>\u0421\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435: git rebase &lt;target&gt; \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0438\u0437 HEAD, \u043d\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0438\u0437 &lt;target&gt;. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b git log &#8212;online &lt;target&gt;&#8230;HEAD \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0438\u0445 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>\u0417\u0430\u0442\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0430 rebase \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044e &lt;target&gt; \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b git cherry-pick \u0432 \u044d\u0442\u043e\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441\u043e \u0441\u0442\u0430\u0440\u044b\u0445. \u0412 \u043a\u043e\u043d\u0446\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 OID, \u043d\u043e \u0441\u0445\u043e\u0436\u0438\u0445 \u0441 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u043e\u043c.<\/p>\n<p>\u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u0437 \u0442\u0440\u0451\u0445 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0432\u0435\u0442\u043a\u0435 HEAD \u0441 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0440\u0430\u0437\u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u044f target. \u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 git rebase target? \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432 A, B, \u0438 C, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u0449\u0430\u044f \u0431\u0430\u0437\u0430 P. \u0417\u0430\u0442\u0435\u043c \u043f\u043e\u0432\u0435\u0440\u0445 target \u043e\u043d\u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f cherry-pick, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u044b A&#8217;, B&#8217; \u0438 C&#8217;.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a11\/6d4\/c66\/a116d4c662c07f733bb43c7892b510cb.png\" width=\"513\" height=\"237\"><figcaption><\/figcaption><\/figure>\n<p>\u041a\u043e\u043c\u043c\u0438\u0442\u044b A&#8217;, B&#8217; \u0438 C&#8217; \u2014 \u044d\u0442\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u043e\u0432\u044b\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u044b \u0441 \u043e\u0431\u0449\u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u043a \u0431\u043e\u043b\u044c\u0448\u043e\u043c\u0443 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 A, B \u0438 C, \u043d\u043e \u043e\u043d\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0431\u043e\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u043e\u0432\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0441\u0442\u0430\u0440\u044b\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0432 \u0432\u0430\u0448\u0435\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430\u0447\u043d\u0451\u0442\u0441\u044f \u0441\u0431\u043e\u0440 \u043c\u0443\u0441\u043e\u0440\u0430. <\/p>\n<p>\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b git range-diff \u043c\u044b \u0434\u0430\u0436\u0435 \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u0434\u0432\u0443\u0445 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u043e\u0432 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432! \u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 Git, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c rebase \u043d\u0430 \u0442\u0435\u0433 v2.29.2, \u0430 \u0437\u0430\u0442\u0435\u043c \u0441\u043b\u0435\u0433\u043a\u0430 \u0438\u0437\u043c\u0435\u043d\u044e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u0430.<\/p>\n<pre><code class=\"bash\">$ git checkout -f 8e86cf65816 $ git rebase v2.29.2 $ echo extra line &gt;&gt;README.md $ git commit -a --amend -m \"replaced commit message\" $ git range-diff v2.29.2 8e86cf65816 HEAD 1:  17e7dbbcbc = 1:  2aa8919906 sideband: avoid reporting incomplete sideband messages 2:  8e86cf6581 ! 2:  e08fff1d8b sideband: report unhandled incomplete sideband messages as bugs     @@ Metadata      Author: Johannes Schindelin &lt;Johannes.Schindelin@gmx.de&gt;             ## Commit message ##     -    sideband: report unhandled incomplete sideband messages as bugs     +    replaced commit message           -    It was pretty tricky to verify that incomplete sideband messages are     -    handled correctly by the `recv_sideband()`\/`demultiplex_sideband()`     -    code: they have to be flushed out at the end of the loop in     -    `recv_sideband()`, but the actual flushing is done by the     -    `demultiplex_sideband()` function (which therefore has to know somehow     -    that the loop will be done after it returns).     -     -    To catch future bugs where incomplete sideband messages might not be     -    shown by mistake, let's catch that condition and report a bug.     -     -    Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;     -    Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;     + ## README.md ##     +@@ README.md: and the name as (depending on your mood):     + [Documentation\/giteveryday.txt]: Documentation\/giteveryday.txt     + [Documentation\/gitcvs-migration.txt]: Documentation\/gitcvs-migration.txt     + [Documentation\/SubmittingPatches]: Documentation\/SubmittingPatches     ++extra line             ## pkt-line.c ##      @@ pkt-line.c: int recv_sideband(const char *me, int in_stream, int out)<\/code><\/pre>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0439 range-diff \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442, \u0447\u0442\u043e \u043a\u043e\u043c\u043c\u0438\u0442\u044b 17e7dbbcbc \u0438 2aa8919906 &#171;\u0440\u0430\u0432\u043d\u044b&#187;, \u0430 \u044d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u043f\u0430\u0442\u0447. \u0412\u0442\u043e\u0440\u0430\u044f \u043f\u0430\u0440\u0430 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f: \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e, \u0447\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c, \u0435\u0441\u0442\u044c \u043f\u0440\u0430\u0432\u043a\u0430 \u0432 README.md, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0435 \u0431\u044b\u043b\u043e \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u0435.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0439\u0442\u0438 \u0432\u0434\u043e\u043b\u044c \u0434\u0435\u0440\u0435\u0432\u0430, \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432 \u0432\u0441\u0451 \u0435\u0449\u0451 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0443 \u043e\u0431\u043e\u0438\u0445 \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432. \u041d\u043e\u0432\u044b\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u044b \u0438\u043c\u0435\u044e\u0442 \u0442\u0435\u0433 v2.29.2 \u2014 \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u044d\u0442\u043e \u0442\u0440\u0435\u0442\u0438\u0439 \u043a\u043e\u043c\u043c\u0438\u0442, \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u043a \u0441\u0442\u0430\u0440\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u0442\u0435\u0433 v2.28.0 \u2014 \u0431\u043e\u043b\u0435\u0435\u0435 \u0440\u0430\u043d\u043d\u0438\u0439, \u0430 \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043e\u043d \u0442\u0430\u043a\u0436\u0435 \u0442\u0440\u0435\u0442\u0438\u0439.<\/p>\n<pre><code class=\"bash\">$ git log --oneline -3 HEAD e08fff1d8b2 (HEAD) replaced commit message 2aa89199065 sideband: avoid reporting incomplete sideband messages 898f80736c7 (tag: v2.29.2) Git 2.29.2  $ git log --oneline -3 8e86cf65816 8e86cf65816 sideband: report unhandled incomplete sideband messages as bugs 17e7dbbcbce sideband: avoid reporting incomplete sideband messages 47ae905ffb9 (tag: v2.28.0) Git 2.28 <\/code><\/pre>\n<h3>\u0415\u0441\u043b\u0438 \u043a\u043e\u043c\u043c\u0438\u0442\u044b \u2013 \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u044f, \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u043a Git \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f?<\/h3>\n<p>\u0412\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0432 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c, \u0432\u044b \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u0435, \u0447\u0442\u043e Git \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043c\u043c\u0438\u0442\u0430\u043c\u0438 \u0432 \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u041c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c\u0441\u044f \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c: &#171;\u041e\u0442\u043a\u0443\u0434\u0430 Git \u0437\u043d\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435?&#187;<\/p>\n<p>Git \u043d\u0435 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f. \u0412 \u043d\u0451\u043c \u043d\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0445\u0440\u0430\u043d\u0438\u043b\u0430 \u0431\u044b \u0437\u0430\u043f\u0438\u0441\u044c \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u043c \u0438 \u0435\u0433\u043e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c \u0438\u043c\u0435\u043b\u043e \u043c\u0435\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435. <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e Git \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f <em>\u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c<\/em> \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439. \u0415\u0441\u0442\u044c \u0434\u0432\u0430 \u044d\u0442\u0430\u043f\u0430 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0439: \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439 Git \u0438\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u043f\u0443\u0442\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u044b. \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043a\u0430\u043a \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u0434\u0440\u0443\u0433\u043e\u0435. Git \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f <a href=\"https:\/\/en.wikipedia.org\/wiki\/Matching_(graph_theory)\">\u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c<\/a> \u044d\u0442\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0430\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0445 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0439.<\/p>\n<p>\u041d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u044d\u0442\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e\u0442\u0441\u044f OID \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0438 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0445 \u043f\u0443\u0442\u0435\u0439 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0438\u0445 \u0442\u043e\u0447\u043d\u043e\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435. \u0422\u0430\u043a\u0438\u0435 \u0442\u043e\u0447\u043d\u044b\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043f\u0430\u0440\u044b.<\/p>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f \u0441\u0442\u0430\u0434\u0438\u044f \u2014 \u0434\u043e\u0440\u043e\u0433\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439: \u043a\u0430\u043a \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u0444\u0430\u0439\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u044b \u0438 \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b? \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435 \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u043c, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c <strong>\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u0441\u0445\u043e\u0436\u0435\u0441\u0442\u0438<\/strong> \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 \u043a \u043e\u0431\u0449\u0435\u043c\u0443 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0441\u0442\u0440\u043e\u043a. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0447\u0442\u043e-\u043b\u0438\u0431\u043e, \u0447\u0442\u043e \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 50 % \u043e\u0431\u0449\u0438\u0445 \u0441\u0442\u0440\u043e\u043a, \u0437\u0430\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435\u043c. \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u044d\u0442\u0438 \u043f\u0430\u0440\u044b \u0434\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0451\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435.<\/p>\n<p>\u0412\u044b \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443? \u042d\u0442\u043e\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u0435\u0442 A * D \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439, \u0433\u0434\u0435 A \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u0438 D \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0439, \u0442\u043e \u0435\u0441\u0442\u044c \u0443 \u043d\u0435\u0433\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438\u0447\u043d\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c! \u0427\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043e\u043b\u0433\u0438\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u043f\u043e \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044e, Git \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442 \u0447\u0430\u0441\u0442\u044c \u0441 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0435\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439 \u0441 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435\u043c, \u0435\u0441\u043b\u0438 A + D \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u043b\u0438\u043c\u0438\u0442\u0430. \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 \u043e\u043f\u0446\u0438\u0438 <a href=\"https:\/\/git-scm.com\/docs\/git-config#Documentation\/git-config.txt-diffrenameLimit\">diff.renameLimit \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438<\/a>. \u0412\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430, \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0432 diff.renames.<\/p>\n<p>\u042f \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438 \u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0439 \u0432 \u0441\u0432\u043e\u0438\u0445 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0444\u043e\u0440\u043a\u043d\u0443\u043b <a href=\"https:\/\/github.com\/microsoft\/vfsforgit\">VFS for Git<\/a>, \u0441\u043e\u0437\u0434\u0430\u043b \u043f\u0440\u043e\u0435\u043a\u0442 <a href=\"https:\/\/github.com\/microsoft\/scalar\">Scalar<\/a> \u0438 \u0445\u043e\u0442\u0435\u043b \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u0434\u0430, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0444\u0430\u0439\u043b\u0430. \u0425\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0439 \u0432 VFS for Git, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433 \u0441\u043e\u0441\u0442\u043e\u044f\u043b \u0438\u0437 \u0434\u0432\u0443\u0445 \u044d\u0442\u0430\u043f\u043e\u0432:<\/p>\n<ol>\n<li>\n<p><a href=\"https:\/\/github.com\/microsoft\/scalar\/commit\/fb3a2a3635daf4257d476b43677fc4cd8bdde53f\">\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0444\u0430\u0439\u043b\u044b \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u0431\u043e\u0432<\/a>.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/microsoft\/scalar\/commit\/90e8c1bd69a204dfa2ac8fcd26b674bfd98227b9\">\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0431\u043b\u043e\u0431\u044b \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432<\/a>.<\/p>\n<\/li>\n<\/ol>\n<p>\u042d\u0442\u0438 \u0434\u0432\u0430 \u0448\u0430\u0433\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0438 \u043c\u043d\u0435 \u0431\u044b\u0441\u0442\u0440\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c git log &#8212;follow &#8212; &lt;path&gt;, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u043d\u0438\u044f.<\/p>\n<pre><code>$ git log --oneline --follow -- Scalar\/CommandLine\/ScalarVerb.cs 4183579d console: remove progress spinners from all commands 5910f26c ScalarVerb: extract Git version check ... 9f402b5a Re-insert some important instances of GVFS 90e8c1bd [REPLACE] Replace old name in all files fb3a2a36 [RENAME] Rename all files cedeeaa3 Remove dead GVFSLock and GitStatusCache code a67ca851 Remove more dead hooks code ...<\/code><\/pre>\n<p>\u042f \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u043b \u0432\u044b\u0432\u043e\u0434: \u0434\u0432\u0430 \u044d\u0442\u0438\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u043f\u0443\u0442\u0438, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e Scalar\/CommandLine\/ScalarVerb.cs, \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u043f\u0443\u0442\u044c GVSF\/GVFS\/CommandLine\/GVFSVerb.cs, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e Git \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043b \u0442\u043e\u0447\u043d\u043e\u0435 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0438\u0437 \u043a\u043e\u043c\u043c\u0438\u0442\u0430 fb3a2a36 [RENAME] Rename all files.<\/p>\n<h3>\u041d\u0435 \u043e\u0431\u043c\u0430\u043d\u044b\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u0431\u043e\u043b\u044c\u0448\u0435<\/h3>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435, \u0447\u0442\u043e <strong>\u043a\u043e\u043c\u043c\u0438\u0442\u044b <\/strong>\u2014<strong> \u044d\u0442\u043e \u0441\u043d\u0430\u043f\u0448\u043e\u0442\u044b, \u0430 \u043d\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f!<\/strong> \u041f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 Git. <\/p>\n<p>\u0418 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0432\u043e\u043e\u0440\u0443\u0436\u0435\u043d\u044b \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u043c\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 Git. \u041d\u0435 \u0432\u0430\u0436\u043d\u043e, \u043a\u0430\u043a\u0430\u044f \u0443 \u0432\u0430\u0441 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, <a href=\"https:\/\/skillfactory.ru\/frontend?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_FR&amp;utm_term=regular&amp;utm_content=130421\">frontend<\/a>, <a href=\"https:\/\/skillfactory.ru\/golang-dev?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_GO&amp;utm_term=regular&amp;utm_content=130421\">backend<\/a>, \u0438\u043b\u0438 \u0432\u043e\u0432\u0441\u0435 <a href=\"https:\/\/skillfactory.ru\/python-fullstack-web-developer?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_FPW&amp;utm_term=regular&amp;utm_content=130421\">fullstack<\/a> \u2014 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0437\u043d\u0430\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u043d\u0430\u0432\u044b\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 Git&#8217;\u0430 \u0438\u043b\u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u0445 \u0432 \u0432\u0430\u0448\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u0435. \u0410 \u043a \u043d\u0430\u043c \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u044c \u0437\u0430 \u0431\u043e\u043b\u0435\u0435 \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438, \u0447\u0442\u043e\u0431\u044b \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u0441\u0432\u043e\u044e \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043a\u0430\u043a \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430 \u0438\u043b\u0438 \u0432\u043e\u0432\u0441\u0435 \u0441\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0444\u0435\u0440\u0443.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/83a\/67a\/01a\/83a67a01a12ded3ce3b2222638b16fec.png\" width=\"1000\" height=\"200\"><figcaption><\/figcaption><\/figure>\n<p><a href=\"https:\/\/skillfactory.ru\/courses\/?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_ALLCOURSES&amp;utm_term=regular&amp;utm_content=130421\">\u0423\u0437\u043d\u0430\u0439\u0442\u0435<\/a>, \u043a\u0430\u043a \u043f\u0440\u043e\u043a\u0430\u0447\u0430\u0442\u044c\u0441\u044f \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044f\u0445 \u0438\u043b\u0438 \u043e\u0441\u0432\u043e\u0438\u0442\u044c \u0438\u0445 \u0441 \u043d\u0443\u043b\u044f:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/dstpro?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_DSPR&amp;utm_term=regular&amp;utm_content=130421\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f Data Scientist<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/dataanalystpro?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_DAPR&amp;utm_term=regular&amp;utm_content=130421\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f Data Analyst<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/dataengineer?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_DEA&amp;utm_term=regular&amp;utm_content=130421\">\u041a\u0443\u0440\u0441 \u043f\u043e Data Engineering<\/a><\/p>\n<\/li>\n<\/ul>\n<details class=\"spoiler\">\n<summary>\u0414\u0440\u0443\u0433\u0438\u0435 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u0438 \u0438 \u043a\u0443\u0440\u0441\u044b<\/summary>\n<div class=\"spoiler__content\">\n<p><strong>\u041f\u0420\u041e\u0424\u0415\u0421\u0421\u0418\u0418<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/python-fullstack-web-developer?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_FPW&amp;utm_term=regular&amp;utm_content=130421\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f Fullstack-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0430 Python<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/java?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_JAVA&amp;utm_term=regular&amp;utm_content=130421\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f Java-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/java-qa-engineer?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_QAJA&amp;utm_term=regular&amp;utm_content=130421\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f QA-\u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u043d\u0430 JAVA<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/frontend?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_FR&amp;utm_term=regular&amp;utm_content=130421\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f Frontend-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/cybersecurity?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_HACKER&amp;utm_term=regular&amp;utm_content=130421\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f \u042d\u0442\u0438\u0447\u043d\u044b\u0439 \u0445\u0430\u043a\u0435\u0440<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/cplus?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_CPLUS&amp;utm_term=regular&amp;utm_content=130421\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f C++ \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/game-dev?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_GAMEDEV&amp;utm_term=regular&amp;utm_content=130421\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0438\u0433\u0440 \u043d\u0430 Unity<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/webdev?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_WEBDEV&amp;utm_term=regular&amp;utm_content=130421\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f \u0412\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/iosdev?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_IOSDEV&amp;utm_term=regular&amp;utm_content=130421\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f iOS-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0441 \u043d\u0443\u043b\u044f<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/android?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_ANDR&amp;utm_term=regular&amp;utm_content=130421\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f Android-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0441 \u043d\u0443\u043b\u044f<\/a><\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041a\u0423\u0420\u0421\u042b<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/ml-programma-machine-learning-online?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_ML&amp;utm_term=regular&amp;utm_content=130421\">\u041a\u0443\u0440\u0441 \u043f\u043e Machine Learning<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/ml-and-dl?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_MLDL&amp;utm_term=regular&amp;utm_content=130421\">\u041a\u0443\u0440\u0441 &#171;Machine Learning \u0438 Deep Learning&#187;<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/math-stat-for-ds#syllabus?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_MAT&amp;utm_term=regular&amp;utm_content=130421\">\u041a\u0443\u0440\u0441 &#171;\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0434\u043b\u044f Data Science&#187;<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/math_and_ml?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_MATML&amp;utm_term=regular&amp;utm_content=130421\">\u041a\u0443\u0440\u0441 &#171;\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0438 Machine Learning \u0434\u043b\u044f Data Science&#187;&nbsp;<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/python-for-web-developers?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_PWS&amp;utm_term=regular&amp;utm_content=130421\">\u041a\u0443\u0440\u0441 &#171;Python \u0434\u043b\u044f \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438&#187;<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/algo?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_algo&amp;utm_term=regular&amp;utm_content=130421\">\u041a\u0443\u0440\u0441 &#171;\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445&#187;<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/analytics?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_SDA&amp;utm_term=regular&amp;utm_content=130421\">\u041a\u0443\u0440\u0441 \u043f\u043e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/skillfactory.ru\/devops?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=habr_DEVOPS&amp;utm_term=regular&amp;utm_content=130421\">\u041a\u0443\u0440\u0441 \u043f\u043e DevOps<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/551848\/\"> https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/551848\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>Git \u0438\u043c\u0435\u0435\u0442 \u0440\u0435\u043f\u0443\u0442\u0430\u0446\u0438\u044e \u0437\u0430\u043f\u0443\u0442\u044b\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043d\u0430\u0442\u044b\u043a\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u044e \u0438 \u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0432\u043e\u0434\u044f\u0442 \u0432 \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u0435. \u042d\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 &#171;\u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0445&#187; \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0445, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a git cherry-pick \u0438\u043b\u0438 git rebase. \u041f\u043e \u043c\u043e\u0435\u043c\u0443 \u043e\u043f\u044b\u0442\u0443, \u043f\u0435\u0440\u0432\u043e\u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u043f\u0443\u0442\u0430\u043d\u0438\u0446\u044b \u2014 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u044f \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432 \u043a\u0430\u043a <em>\u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439<\/em>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0442\u0430\u0441\u043e\u0432\u0430\u0442\u044c. \u041e\u0434\u043d\u0430\u043a\u043e <strong>\u043a\u043e\u043c\u043c\u0438\u0442\u044b <\/strong>\u2014<strong> \u044d\u0442\u043e \u043d\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f, \u0430 \u0441\u043d\u0438\u043c\u043a\u0438! <\/strong>\u042f \u0441\u0447\u0438\u0442\u0430\u044e, \u0447\u0442\u043e Git \u0441\u0442\u0430\u043d\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c, \u0435\u0441\u043b\u0438 \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0437\u0430\u043d\u0430\u0432\u0435\u0441 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043a\u0430\u043a \u043e\u043d \u0445\u0440\u0430\u043d\u0438\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f. \u0418\u0437\u0443\u0447\u0438\u0432 \u043c\u043e\u0434\u0435\u043b\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u044b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u043d\u043e\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a git cherry-pick \u0438 git rebase. <\/p>\n<hr>\n<p>\u0415\u0441\u043b\u0438 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0443\u0433\u043b\u0443\u0431\u0438\u0442\u044c\u0441\u044f <em>\u043f\u043e-\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c\u0443<\/em>, \u0447\u0438\u0442\u0430\u0439\u0442\u0435 <a href=\"https:\/\/git-scm.com\/book\/en\/v2\/Git-Internals-Git-Objects\">&nbsp;\u0433\u043b\u0430\u0432\u0443<\/a> \u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 Git (Git internals) \u043a\u043d\u0438\u0433\u0438 Pro Git. \u042f \u0431\u0443\u0434\u0443 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u043c <a href=\"https:\/\/github.com\/git\/git\">git\/git<\/a> \u0432\u0435\u0440\u0441\u0438\u0438 v2.29.2. \u041f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0439\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0437\u0430 \u043c\u043d\u043e\u0439, \u0447\u0442\u043e\u0431\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u043e\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n<h3>\u0425\u0435\u0448\u0438 \u2014 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432<\/h3>\n<p>\u0421\u0430\u043c\u043e\u0435 \u0432\u0430\u0436\u043d\u043e\u0435, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u043e Git-\u043e\u0431\u044a\u0435\u043a\u0442\u0430\u0445, \u2014 \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e Git \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043f\u043e <em>\u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0430<\/em> (OID \u0434\u043b\u044f \u043a\u0440\u0430\u0442\u043a\u043e\u0441\u0442\u0438), \u0434\u0430\u0451\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0438\u043c\u044f. <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 OID, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 git rev-parse. \u041a\u0430\u0436\u0434\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442, \u043f\u043e \u0441\u0443\u0442\u0438, \u2014 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b, \u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c <a href=\"https:\/\/git-scm.com\/docs\/git-cat-file\">\u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 git cat-file -p<\/a>.<\/p>\n<p>\u041c\u044b \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438 \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e OID \u0434\u0430\u043d\u044b \u0432 \u0432\u0438\u0434\u0435 \u0443\u043a\u043e\u0440\u043e\u0447\u0435\u043d\u043d\u043e\u0439 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u0421\u0442\u0440\u043e\u043a\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u0430 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0438\u043c\u0435\u043b \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0439 \u0441 \u043d\u0435\u0439 OID. \u0415\u0441\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u043c OID, \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0435 OID.<\/p>\n<pre><code class=\"bash\">$ git cat-file -t e0c03 error: short SHA1 e0c03 is ambiguous hint: The candidates are: hint: e0c03f27484 commit 2016-10-26 - contrib\/buildsystems: ignore irrelevant files in Generators\/ hint: e0c03653e72 tree hint: e0c03c3eecc blob fatal: Not a valid object name e0c03<\/code><\/pre>\n<h3>\u0411\u043b\u043e\u0431\u044b \u2014 \u044d\u0442\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u043e\u0432<\/h3>\n<p>\u041d\u0430 \u043d\u0438\u0436\u043d\u0435\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0431\u043b\u043e\u0431\u044b \u2014 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430. \u0427\u0442\u043e\u0431\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c OID \u0444\u0430\u0439\u043b\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0440\u0435\u0432\u0438\u0437\u0438\u0438, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 git rev-parse HEAD:&lt;path&gt;, \u0430 \u0437\u0430\u0442\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430 \u2014 git cat-file -p &lt;oid&gt;.<\/p>\n<pre><code>$ git rev-parse HEAD:README.md eb8115e6b04814f0c37146bbe3dbc35f3e8992e0  $ git cat-file -p eb8115e6b04814f0c37146bbe3dbc35f3e8992e0 | head -n 8 [![Build status](https:\/\/github.com\/git\/git\/workflows\/CI\/PR\/badge.png)](https:\/\/github.com\/git\/git\/actions?query=branch%3Amaster+event%3Apush)  Git - fast, scalable, distributed revision control system =========================================================  Git is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations and full access to internals.<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u044f \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u044e \u0444\u0430\u0439\u043b README.md \u043d\u0430 \u043c\u043e\u0451\u043c \u0434\u0438\u0441\u043a\u0435, \u0442\u043e git status \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0434\u0438\u0442, \u0447\u0442\u043e \u0444\u0430\u0439\u043b \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f, \u0438 \u0445\u044d\u0448\u0438\u0440\u0443\u0435\u0442 \u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435. \u041a\u043e\u0433\u0434\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0442\u0435\u043a\u0443\u0449\u0438\u043c OID \u0432 HEAD:README.md, git status \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u043e \u0444\u0430\u0439\u043b\u0435 \u043a\u0430\u043a \u043e &#171;\u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043d\u0430 \u0434\u0438\u0441\u043a\u0435&#187;. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432\u0438\u0434\u043d\u043e, \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u043b\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0441 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c \u0432 HEAD.<\/p>\n<h3>\u0414\u0435\u0440\u0435\u0432\u044c\u044f \u2014 \u044d\u0442\u043e \u0441\u043f\u0438\u0441\u043a\u0438 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432<\/h3>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0431\u043b\u043e\u0431\u044b \u0445\u0440\u0430\u043d\u044f\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430, \u043d\u043e \u043d\u0435 \u0435\u0433\u043e \u0438\u043c\u044f. \u0418\u043c\u0435\u043d\u0430 \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0438\u0437 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 Git \u2014 <strong>\u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432<\/strong>. \u0414\u0435\u0440\u0435\u0432\u043e \u2014 \u044d\u0442\u043e \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0443\u0442\u0435\u0439 \u0432 \u043f\u0430\u0440\u0435 \u0441 \u0442\u0438\u043f\u0430\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0440\u0435\u0436\u0438\u043c\u0430\u043c\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 OID \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u043f\u0443\u0442\u0438. \u041f\u043e\u0434\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u0432\u0438\u0434\u0435 \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0435\u0440\u0435\u0432\u044c\u044f \u043c\u043e\u0433\u0443\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u0434\u0435\u0440\u0435\u0432\u044c\u044f!<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430\u043c\u0438, \u0447\u0442\u043e\u0431\u044b \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439. \u041a\u0440\u0430\u0441\u043d\u044b\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u044b \u2014 \u043d\u0430\u0448\u0438 \u0431\u043b\u043e\u0431\u044b, \u0430 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u2014 \u0434\u0435\u0440\u0435\u0432\u044c\u044f.<\/p>\n<pre><code class=\"bash\">$ git rev-parse HEAD^{tree} 75130889f941eceb57c6ceb95c6f28dfc83b609c  $ git cat-file -p 75130889f941eceb57c6ceb95c6f28dfc83b609c  | head -n 15 100644 blob c2f5fe385af1bbc161f6c010bdcf0048ab6671ed    .cirrus.yml 100644 blob c592dda681fecfaa6bf64fb3f539eafaf4123ed8    .clang-format 100644 blob f9d819623d832113014dd5d5366e8ee44ac9666a    .editorconfig 100644 blob b08a1416d86012134f823fe51443f498f4911909    .gitattributes 040000 tree fbe854556a4ae3d5897e7b92a3eb8636bb08f031    .github 100644 blob 6232d339247fae5fdaeffed77ae0bbe4176ab2de    .gitignore 100644 blob cbeebdab7a5e2c6afec338c3534930f569c90f63    .gitmodules 100644 blob bde7aba756ea74c3af562874ab5c81a829e43c83    .mailmap 100644 blob 05f3e3f8d79117c1d32bf5e433d0fd49de93125c    .travis.yml 100644 blob 5ba86d68459e61f87dae1332c7f2402860b4280c    .tsan-suppressions 100644 blob fc4645d5c08bd005238fc72cfa709495d8722e6a    CODE_OF_CONDUCT.md 100644 blob 536e55524db72bd2acf175208aef4f3dfc148d42    COPYING 040000 tree a58410edddbdd133cca6b3322bebe4fb37be93fa    Documentation 100755 blob ca6ccb49866c595c80718d167e40cfad1ee7f376    GIT-VERSION-GEN 100644 blob 9ba33e6a141a3906eb707dd11d1af4b0f8191a55    INSTALL<\/code><\/pre>\n<p>\u0414\u0435\u0440\u0435\u0432\u044c\u044f \u0434\u0430\u044e\u0442 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043f\u043e\u0434\u043f\u0443\u043d\u043a\u0442\u0443 \u0438 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0442\u0430\u043a\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u043a\u0430\u043a \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 \u0444\u0430\u0439\u043b\u044b \u0432 Unix, \u0442\u0438\u043f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 (blob \u0438\u043b\u0438 tree) \u0438 OID \u043a\u0430\u0436\u0434\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438. \u041c\u044b \u0432\u044b\u0440\u0435\u0437\u0430\u0435\u043c \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 15 \u0432\u0435\u0440\u0445\u043d\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u043d\u043e \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c grep, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u0434\u0435\u0440\u0435\u0432\u0435 \u0435\u0441\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c README.md, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 OID \u0431\u043b\u043e\u0431\u0430.<\/p>\n<pre><code>$ git cat-file -p 75130889f941eceb57c6ceb95c6f28dfc83b609c | grep README.md 100644 blob eb8115e6b04814f0c37146bbe3dbc35f3e8992e0    README.md<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043f\u0443\u0442\u0435\u0439 \u0434\u0435\u0440\u0435\u0432\u044c\u044f \u043c\u043e\u0433\u0443\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u0431\u043b\u043e\u0431\u044b \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0434\u0435\u0440\u0435\u0432\u044c\u044f. \u0418\u043c\u0435\u0439\u0442\u0435 \u0432 \u0432\u0438\u0434\u0443, \u0447\u0442\u043e \u044d\u0442\u0438 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u0438\u0434\u0443\u0442 \u0432 \u043f\u0430\u0440\u0435 \u0441 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 \u043f\u0443\u0442\u0435\u0439, \u043d\u043e \u043c\u044b \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u044d\u0442\u0438 \u0438\u043c\u0435\u043d\u0430 \u043d\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430\u0445.<\/p>\n<p>\u0421\u0430\u043c\u043e \u0434\u0435\u0440\u0435\u0432\u043e \u043d\u0435 \u0437\u043d\u0430\u0435\u0442, \u0433\u0434\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u043e\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f, \u0442\u043e \u0435\u0441\u0442\u044c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u0434\u0435\u0440\u0435\u0432\u043e \u2014 \u0440\u043e\u043b\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u0414\u0435\u0440\u0435\u0432\u043e, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f &lt;ref&gt;^{tree}, \u043e\u0441\u043e\u0431\u043e\u0435 \u2014 \u044d\u0442\u043e \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e. \u0422\u0430\u043a\u043e\u0435 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043e \u043d\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435 \u0438\u0437 \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0430.<\/p>\n<h3>\u041a\u043e\u043c\u043c\u0438\u0442\u044b \u2014 \u044d\u0442\u043e \u0441\u043d\u0430\u043f\u0448\u043e\u0442\u044b<\/h3>\n<p><strong>\u041a\u043e\u043c\u043c\u0438\u0442<\/strong> \u2014 \u044d\u0442\u043e \u0441\u043d\u0438\u043c\u043e\u043a \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0441\u0432\u043e\u0451 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u043d\u0438\u043c\u043a\u0430. <\/p>\n<p>\u0412 \u043a\u043e\u043c\u043c\u0438\u0442\u0435 \u0435\u0441\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a <em>\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432<\/em>, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c \u0441\u043d\u0438\u043c\u043a\u0430\u043c. \u041a\u043e\u043c\u043c\u0438\u0442 \u0431\u0435\u0437 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u2014 \u044d\u0442\u043e \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u043a\u043e\u043c\u043c\u0438\u0442, \u0430 \u043a\u043e\u043c\u043c\u0438\u0442 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f\u043c\u0438 \u2014 \u044d\u0442\u043e \u043a\u043e\u043c\u043c\u0438\u0442 \u0441\u043b\u0438\u044f\u043d\u0438\u044f. <\/p>\n<p>\u041a\u043e\u043c\u043c\u0438\u0442\u044b \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u0441\u043d\u0438\u043c\u043a\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0430\u0432\u0442\u043e\u0440\u0430 \u0438 \u043a\u043e\u043c\u043c\u0438\u0442\u0442\u0435\u0440\u0430 (\u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0438\u043c\u044f, \u0430\u0434\u0440\u0435\u0441 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b \u0438 \u0434\u0430\u0442\u0443) \u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0435. \u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0435 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u0430 \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u2014 \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0446\u0435\u043b\u044c \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u043f\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f\u043c.<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u043c\u043c\u0438\u0442 \u0432 v2.29.2 \u0432 Git-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u0440\u0435\u043b\u0438\u0437, \u0442\u0430\u043a\u0436\u0435 \u043e\u043d \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d, \u0430 \u0435\u0433\u043e \u0430\u0432\u0442\u043e\u0440 \u2014 \u0447\u043b\u0435\u043d \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 Git.<\/p>\n<pre><code class=\"bash\">$ git rev-parse HEAD 898f80736c75878acc02dc55672317fcc0e0a5a6  \/c\/_git\/git ((v2.29.2)) $ git cat-file -p 898f80736c75878acc02dc55672317fcc0e0a5a6 tree 75130889f941eceb57c6ceb95c6f28dfc83b609c parent a94bce62b99be35f2ee2b4c98f97c222e7dd9d82 author Junio C Hamano &lt;gitster@pobox.com&gt; 1604006649 -0700 committer Junio C Hamano &lt;gitster@pobox.com&gt; 1604006649 -0700  Git 2.29.2  Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;<\/code><\/pre>\n<p>\u0417\u0430\u0433\u043b\u044f\u043d\u0443\u0432 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 git log, \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0435, \u043e\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u0431 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043c\u0435\u0436\u0434\u0443 \u044d\u0442\u0438\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u043c \u0438 \u0435\u0433\u043e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c. <\/p>\n<pre><code>$ git cat-file -p 16b0bb99eac5ebd02a5dcabdff2cfc390e9d92ef tree d0e42501b1cf65395e91e22e74f75fc5caa0286e parent 56706dba33f5d4457395c651cf1cd033c6c03c7a author Jeff King &amp;lt;peff@peff.net&amp;gt; 1603436979 -0400 committer Junio C Hamano &amp;lt;gitster@pobox.com&amp;gt; 1603466719 -0700  am: fix broken email with --committer-date-is-author-date  Commit e8cbe2118a (am: stop exporting GIT_COMMITTER_DATE, 2020-08-17) rewrote the code for setting the committer date to use fmt_ident(), rather than setting an environment variable and letting commit_tree() handle it. But it introduced two bugs:  - we use the author email string instead of the committer email  - when parsing the committer ident, we used the wrong variable to compute the length of the email, resulting in it always being a zero-length string  This commit fixes both, which causes our test of this option via the rebase \"apply\" backend to now succeed.  Signed-off-by: Jeff King &amp;lt;peff@peff.net&amp;gt; Signed-off-by: Junio C Hamano &amp;lt;gitster@pobox.com&amp;gt;<\/code><\/pre>\n<p><em>\u041a\u0440\u0443\u0433\u0438<\/em> \u043d\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430\u0445 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u043c\u043c\u0438\u0442\u044b:<\/p>\n<ul>\n<li>\n<p>\u041a\u0432\u0430\u0434\u0440\u0430\u0442\u044b \u2014 \u044d\u0442\u043e <strong>\u0431\u043b\u043e\u0431\u044b<\/strong>. \u041e\u043d\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0422\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438 \u2014 \u044d\u0442\u043e <strong>\u0434\u0435\u0440\u0435\u0432\u044c\u044f<\/strong>. \u041e\u043d\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0440\u0443\u0433\u0438 \u2014 \u044d\u0442\u043e <strong>\u043a\u043e\u043c\u043c\u0438\u0442\u044b<\/strong>. \u0421\u043d\u0430\u043f\u0448\u043e\u0442\u044b \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0412\u0435\u0442\u0432\u0438 \u2014 \u044d\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438<\/h3>\n<p>\u0412 Git \u043c\u044b \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u043c\u0441\u044f \u043f\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0438 \u0432\u043d\u043e\u0441\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043d\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u044f\u0441\u044c \u043a OID. \u042d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0432\u0435\u0442\u0432\u0438 \u0434\u0430\u044e\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0441 \u043a\u043e\u043c\u043c\u0438\u0442\u044b. \u0412\u0435\u0442\u043a\u0430 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c main \u2014 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0441\u0441\u044b\u043b\u043a\u0430 \u0432 Git, \u043e\u043d\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f refs\/heads\/main. \u0424\u0430\u0439\u043b\u044b \u0441\u0441\u044b\u043b\u043e\u043a \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0448\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u043d\u0430 OID \u043a\u043e\u043c\u043c\u0438\u0442\u0430. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u0442\u0438 \u0441\u0441\u044b\u043b\u043a\u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u044b.<\/p>\n<p>\u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0432\u0435\u0442\u043a\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043e\u0442 Git-\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u041a\u043e\u043c\u043c\u0438\u0442\u044b, \u0434\u0435\u0440\u0435\u0432\u044c\u044f \u0438 \u0431\u043b\u043e\u0431\u044b \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b (\u0438\u043c\u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u044b), \u044d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0432\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435. \u0418\u0437\u043c\u0435\u043d\u0438\u0432 \u0435\u0433\u043e, \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0434\u0440\u0443\u0433\u043e\u0439 \u0445\u044d\u0448 \u0438, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043d\u043e\u0432\u044b\u0439 OID \u0441\u043e \u0441\u0441\u044b\u043b\u043a\u043e\u0439 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442! <\/p>\n<p>\u0412\u0435\u0442\u043a\u0438 \u0438\u043c\u0435\u043d\u0443\u044e\u0442\u0441\u044f \u043f\u043e \u0441\u043c\u044b\u0441\u043b\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, trunk [\u0441\u0442\u0432\u043e\u043b] \u0438\u043b\u0438 my-special-object. \u0412\u0435\u0442\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0438 \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0435\u0451 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438. \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430 HEAD \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0432\u0435\u0442\u043a\u0443. \u041a\u043e\u0433\u0434\u0430 \u043a\u043e\u043c\u043c\u0438\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 HEAD, \u043e\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u0432\u0435\u0442\u043a\u0438. \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0442\u043a\u0443 \u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c HEAD \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <a href=\"https:\/\/git-scm.com\/docs\/git-switch#Documentation\/git-switch.txt--cltnew-branchgt\">\u0444\u043b\u0430\u0433\u0430 git -c<\/a>:<\/p>\n<pre><code>$ git switch -c my-branch Switched to a new branch 'my-branch' $ cat .git\/refs\/heads\/my-branch 1ec19b7757a1acb11332f06e8e812b505490afc6 $ cat .git\/HEAD ref: refs\/heads\/my-branch<\/code><\/pre>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u043a\u043e\u0433\u0434\u0430 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0430\u0441\u044c my-branch, \u0442\u0430\u043a\u0436\u0435 \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d \u0444\u0430\u0439\u043b (.git\/refs\/heads\/my-branch) \u0441 \u0442\u0435\u043a\u0443\u0449\u0438\u043c OID \u043a\u043e\u043c\u043c\u0438\u0442\u0430, \u0430 \u0444\u0430\u0439\u043b .git\/HEAD \u0431\u044b\u043b \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u044d\u0442\u0443 \u0432\u0435\u0442\u043a\u0443. \u0422\u0435\u043f\u0435\u0440\u044c, \u0435\u0441\u043b\u0438 \u043c\u044b \u043e\u0431\u043d\u043e\u0432\u0438\u043c HEAD, \u0441\u043e\u0437\u0434\u0430\u0432 \u043d\u043e\u0432\u044b\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u044b, \u0432\u0435\u0442\u043a\u0430 my-branch \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u0442\u0430\u043a, \u0447\u0442\u043e \u0441\u0442\u0430\u043d\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u044d\u0442\u043e\u0442 \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043c\u043c\u0438\u0442!<\/p>\n<h3>\u041e\u0431\u0449\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430<\/h3>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0432\u0441\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443. \u0412\u0435\u0442\u0432\u0438 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u043a\u043e\u043c\u043c\u0438\u0442\u044b, \u043a\u043e\u043c\u043c\u0438\u0442\u044b \u2014 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u044b \u0438 \u0438\u0445 \u043a\u043e\u0440\u043d\u0435\u0432\u044b\u0435 \u0434\u0435\u0440\u0435\u0432\u044c\u044f, \u0434\u0435\u0440\u0435\u0432\u044c\u044f \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u0431\u043b\u043e\u0431\u044b \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0434\u0435\u0440\u0435\u0432\u044c\u044f, \u0430 \u0431\u043b\u043e\u0431\u044b \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0438 \u043d\u0430 \u0447\u0442\u043e. \u0412\u043e\u0442 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u0441\u0440\u0430\u0437\u0443:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0412\u0440\u0435\u043c\u044f \u043d\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0435 \u043e\u0442\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e. \u0421\u0442\u0440\u0435\u043b\u043a\u0438 \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u043c \u0438 \u0435\u0433\u043e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f\u043c\u0438 \u0438\u0434\u0443\u0442 \u0441\u043f\u0440\u0430\u0432\u0430 \u043d\u0430\u043b\u0435\u0432\u043e. \u0423 <\/p>\n<\/hr>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-321400","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/321400","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=321400"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/321400\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=321400"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=321400"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=321400"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}