Mac Developer Library Developer


This manual page is part of Xcode Tools version 5.0

To obtain these tools:

If you are running a version of Xcode Tools other than 5.0, view the documentation locally:

  • In Xcode

  • In Terminal, using the man(1) command

Reading manual pages

Manual pages are intended as a quick reference for people who already understand a technology.

  • To learn how the manual is organized or to learn about command syntax, read the manual page for manpages(5).

  • For more information about this technology, look for other documentation in the Apple Developer Library.

  • For general information about writing shell scripts, read Shell Scripting Primer.

GIT-PACK-REFS(1)                                 Git Manual                                 GIT-PACK-REFS(1)

       git-pack-refs - Pack heads and tags for efficient repository access

       git pack-refs [--all] [--no-prune]

       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
       --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.

           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.

           The command usually removes loose refs under $GIT_DIR/refs hierarchy after packing them. This
           option tells it not to.

       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".

       Part of the git(1) suite

Git 1.8.3                                        05/24/2013                                 GIT-PACK-REFS(1)

Reporting Problems

The way to report a problem with this manual page depends on the type of problem:

Content errors
Report errors in the content of this documentation with the feedback links below.
Bug reports
Report bugs in the functionality of the described tool or API through Bug Reporter.
Formatting problems
Report formatting mistakes in the online version of these pages with the feedback links below.