Имена ссылок могут быть либо упакованы (хранятся в .git/packed-refs
, который является обычным файлом), либо распакованы (сохраняются по одному на файл). Ссылка, которая существует как распакованная, так и упакованная, имеет текущее значение, сохраненное в распакованной копии, т.е. упакованная копия не удаляется автоматически.
В этом случае две «невидимые» ссылки, без сомнения, упакованы. Мне не понятно, что происходит с refs/heads/release/testing
.
Будущая версия Git может вообще прекратить хранить имена ссылок в текстовых файлах, поскольку в файловых системах Windows и MacOS имена файлов имеют проблемы с переносом регистра. Используйте git for-each-ref
и git update-ref
(и аналогичные) для чтения и записи ссылочных значений, чтобы быть готовыми к будущему Git, использующему фактическую базу данных значений ключей.