Git хранит ссылки в двух формах, которые он конкретно не называет, но по аналогии с упакованными объектами, и тот факт, что второй формой ссылки является файл с именем .git/packed-refs
, мы могли бы назвать Бесплатно и упакованы .
Отдельные файлы в .git/refs/
, по сути, свободные ссылки, а упакованные в .git/packed-refs
.В отличие от объектов, если имеется свободная версия ссылки, она может отличаться от упакованной версии: свободная версия считается правильным значением.Это означает, что нет необходимости удалять упакованную единицу при изменении значения свободной ссылки.
Вы не должны знать или заботиться обо всем этом: чтобы прочитать значение ссылки, используйте git rev-parse
(для несимвольных ссылок) или git symbolic-ref
(для символических ссылок, таких как HEAD
).Чтобы обновить их, используйте git update-ref
или git symbolic-ref
.Эти команды заботятся о необходимой блокировке.