| git-pack-refs(1) | 
 | ================ | 
 |  | 
 | NAME | 
 | ---- | 
 | git-pack-refs - Pack heads and tags for efficient repository access | 
 |  | 
 | SYNOPSIS | 
 | -------- | 
 | 'git pack-refs' [--all] [--no-prune] | 
 |  | 
 | DESCRIPTION | 
 | ----------- | 
 |  | 
 | Traditionally, tips of branches and tags (collectively known as | 
 | 'refs') were stored one file per ref 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 stashing the refs in a single file, | 
 | `$GIT_DIR/packed-refs`.  When a ref is missing from the | 
 | traditional `$GIT_DIR/refs` hierarchy, it is looked up in this | 
 | file and used if found. | 
 |  | 
 | Subsequent updates to branches always create new files under | 
 | `$GIT_DIR/refs` hierarchy. | 
 |  | 
 | A recommended practice to deal with a repository with too many | 
 | refs is to pack its refs with `--all --prune` once, and | 
 | occasionally run `git pack-refs \--prune`.  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. | 
 |  | 
 |  | 
 | Author | 
 | ------ | 
 | Written by Linus Torvalds <torvalds@osdl.org> | 
 |  | 
 | GIT | 
 | --- | 
 | Part of the linkgit:git[1] suite |