Внутренние элементы Git: почему `.git / refs / remotes / origin /` не имеет всех веток - PullRequest
0 голосов
/ 19 сентября 2018

Делая ls .git/refs/remotes/origin/, я вижу только подмножество удаленных origin ветвей.Это почему?git branch -a есть все ветви, так что я их правильно выбрал.

1 Ответ

0 голосов
/ 19 сентября 2018

Git хранит ссылки в двух формах, которые он конкретно не называет, но по аналогии с упакованными объектами, и тот факт, что второй формой ссылки является файл с именем .git/packed-refs, мы могли бы назвать Бесплатно и упакованы .

Отдельные файлы в .git/refs/, по сути, свободные ссылки, а упакованные в .git/packed-refs.В отличие от объектов, если имеется свободная версия ссылки, она может отличаться от упакованной версии: свободная версия считается правильным значением.Это означает, что нет необходимости удалять упакованную единицу при изменении значения свободной ссылки.

Вы не должны знать или заботиться обо всем этом: чтобы прочитать значение ссылки, используйте git rev-parse (для несимвольных ссылок) или git symbolic-ref (для символических ссылок, таких как HEAD).Чтобы обновить их, используйте git update-ref или git symbolic-ref.Эти команды заботятся о необходимой блокировке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...