From fc40534f4fd1f88591e11c78489aee012f89e984 Mon Sep 17 00:00:00 2001 From: Rikudo <245939414+OotsutsukiHagoromo@users.noreply.github.com> Date: Fri, 18 Sep 2026 01:50:04 +0300 Subject: [PATCH] =?UTF-8?q?10/refs:=20=D0=BC=D0=B5=D0=BB=D0=BA=D0=B8=D0=B5?= =?UTF-8?q?=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * также HEAD в тексте взято в `backticks` --- book/10-git-internals/sections/refs.asc | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/book/10-git-internals/sections/refs.asc b/book/10-git-internals/sections/refs.asc index c5e018bb..6e7c7ade 100644 --- a/book/10-git-internals/sections/refs.asc +++ b/book/10-git-internals/sections/refs.asc @@ -62,7 +62,7 @@ fdf4fc3344e67ab068f836878b6c4951e3b15f3d First commit .Объекты в каталоге .git, а также указатели на вершины веток image::images/data-model-4.png["Объекты в каталоге .git, а также указатели на вершины веток"] -При выполнении команды `git branch `, в действительности Git запускает команду `update-ref`, которая добавляет SHA-1 хеш последнего коммита текущей ветки в файл с именем указанной ветки. +При выполнении команды `git branch ` Git в действительности запускает команду `update-ref`, которая добавляет SHA-1-хеш последнего коммита текущей ветки в файл с именем указанной ветки. [[r_the_head]] ==== HEAD @@ -70,13 +70,13 @@ image::images/data-model-4.png["Объекты в каталоге .git, а та Как же Git получает хеш последнего коммита при выполнении `git branch <имя ветки>`? Ответ кроется в файле HEAD. -Файл HEAD -- это символическая ссылка на текущую ветку. +Файл `HEAD` -- это символическая ссылка на текущую ветку. Символическая ссылка отличается от обычной тем, что она содержит не сам хеш SHA-1, а указатель на другую ссылку. -В некоторых случаях файл HEAD может содержать SHA-1 хеш какого-либо объекта. +В некоторых случаях файл `HEAD` может содержать SHA-1 хеш какого-либо объекта. Это происходит при извлечении тега, коммита или удалённой ветки, что приводит репозиторий в состояние https://git-scm.com/docs/git-checkout#_detached_head["detached HEAD"^]. -Если вы заглянете внутрь HEAD, то увидите следующее: +Если вы заглянете внутрь `HEAD`, то увидите следующее: [source,console] ---- @@ -92,10 +92,10 @@ $ cat .git/HEAD ref: refs/heads/test ---- -При выполнении `git commit` Git создаёт коммит, указывая его родителем объект, SHA-1 которого содержится в файле, на который ссылается HEAD. +При выполнении `git commit` Git создаёт коммит, указывая его родителем объект, SHA-1 которого содержится в файле, на который ссылается `HEAD`. -При желании, можно вручную редактировать этот файл, но лучше использовать команду `symbolic-ref`. -Получить значение HEAD этой командой можно так: +При желании можно вручную редактировать этот файл, но лучше использовать команду `symbolic-ref`. +Получить значение `HEAD` этой командой можно так: [source,console] ---- @@ -103,7 +103,7 @@ $ git symbolic-ref HEAD refs/heads/master ---- -Изменить значение HEAD можно так: +Изменить значение `HEAD` можно так: [source,console] ---- @@ -205,5 +205,5 @@ ca82a6dff817ec66f44342007202690a93763949 ---- Ссылки на удалённые ветки отличаются от веток (ссылок в `refs/heads`) тем, что они считаются неизменяемыми. -Это означает, что вы можете переключиться на любую из таких веток с помощью `git checkout`, но Git не установит HEAD на неё, а значит вы не сможете фиксировать свои изменения в ней с помощью `git commit`. +Это означает, что вы можете переключиться на любую из таких веток с помощью `git checkout`, но Git не установит `HEAD` на неё, а значит, вы не сможете фиксировать свои изменения в ней с помощью `git commit`. Git воспринимает удалённые ветки как закладки на последние известные состояния веток на удалённых серверах.