Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.53.0 no changes
-
2.52.0
2025-11-17
- 2.51.1 → 2.51.2 no changes
-
2.51.0
2025-08-18
- 2.50.1 no changes
-
2.50.0
2025-06-16
- 2.45.1 → 2.49.1 no changes
-
2.45.0
2024-04-29
- 2.42.1 → 2.44.4 no changes
-
2.42.0
2023-08-21
- 2.1.4 → 2.41.3 no changes
-
2.0.5
2014-12-17
НАЗВАНИЕ
git-pack-refs - Упаковка указателей на ветки и меток для эффективного доступа к репозиторию
ОПИСАНИЕ
Традиционно верхушки (tips) веток и меток (совместно известные как «ссылки») хранились по одному файлу на ссылку в (под)каталоге внутри каталога $GIT_DIR/refs. В то время как многие верхушки веток обновляются часто, большинство меток и некоторые верхушки веток никогда не обновляются. Когда в репозитории сотни или тысячи меток, этот формат «один файл на ссылку» приводит к потере места и снижению производительности.
Эта команда используется для решения проблемы хранения и производительности путём сохранения ссылок в одном файле, $GIT_DIR/packed-refs. Если ссылка отсутствует в традиционной иерархии каталогов $GIT_DIR/refs, она ищется в этом файле и используется, если найдена.
Последующие обновления веток всегда создают новые файлы в иерархии каталогов $GIT_DIR/refs.
Рекомендуемая практика для работы с репозиторием со слишком большим количеством ссылок — один раз упаковать (pack) его ссылки с помощью --all, а время от времени запускать git pack-refs. Метки по определению стационарны и не должны изменяться. Головы (heads) веток будут упакованы при первоначальном pack-refs --all, но только текущие активные головы веток станут распакованными, и следующий pack-refs (без --all) оставит их распакованными.
ОШИБКИ
В старой документации, написанной до появления механизма packed-refs, всё ещё могут встречаться фразы вроде «файл .git/refs/heads/<ветка> существует», когда подразумевается «ветка <ветка> существует».
GIT
Является частью пакета git[1]