You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.0 KiB
73 lines
2.0 KiB
git-pack-refs(1) |
|
================ |
|
|
|
NAME |
|
---- |
|
git-pack-refs - Pack heads and tags for efficient repository access |
|
|
|
SYNOPSIS |
|
-------- |
|
[verse] |
|
'git pack-refs' [--all] [--no-prune] |
|
|
|
DESCRIPTION |
|
----------- |
|
|
|
Traditionally, tips of branches and tags (collectively known as |
|
'refs') were stored one file per ref in a (sub)directory |
|
under `$GIT_DIR/refs` |
|
directory. While many branch tips tend to be updated often, |
|
most tags and some branch tips are never updated. When a |
|
repository has hundreds or thousands of tags, this |
|
one-file-per-ref format both wastes storage and hurts |
|
performance. |
|
|
|
This command is used to solve the storage and performance |
|
problem by storing the refs in a single file, |
|
`$GIT_DIR/packed-refs`. When a ref is missing from the |
|
traditional `$GIT_DIR/refs` directory hierarchy, it is looked |
|
up in this |
|
file and used if found. |
|
|
|
Subsequent updates to branches always create new files under |
|
`$GIT_DIR/refs` directory hierarchy. |
|
|
|
A recommended practice to deal with a repository with too many |
|
refs is to pack its refs with `--all` once, and |
|
occasionally run `git pack-refs`. Tags are by |
|
definition stationary and are not expected to change. Branch |
|
heads will be packed with the initial `pack-refs --all`, but |
|
only the currently active branch heads will become unpacked, |
|
and the next `pack-refs` (without `--all`) will leave them |
|
unpacked. |
|
|
|
|
|
OPTIONS |
|
------- |
|
|
|
--all:: |
|
|
|
The command by default packs all tags and refs that are already |
|
packed, and leaves other refs |
|
alone. This is because branches are expected to be actively |
|
developed and packing their tips does not help performance. |
|
This option causes branch tips to be packed as well. Useful for |
|
a repository with many branches of historical interests. |
|
|
|
--no-prune:: |
|
|
|
The command usually removes loose refs under `$GIT_DIR/refs` |
|
hierarchy after packing them. This option tells it not to. |
|
|
|
|
|
BUGS |
|
---- |
|
|
|
Older documentation written before the packed-refs mechanism was |
|
introduced may still say things like ".git/refs/heads/<branch> file |
|
exists" when it means "branch <branch> exists". |
|
|
|
|
|
GIT |
|
--- |
|
Part of the linkgit:git[1] suite
|
|
|