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.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
BESKRIVNING
Traditionellt lagrades tips för grenar och taggar (gemensamt kallade referenser) en fil per referens i en (under)katalog under katalogen $GIT_DIR/refs. Medan många grentips tenderar att uppdateras ofta, uppdateras de flesta taggar och vissa grentips aldrig. När ett arkiv har hundratals eller tusentals taggar, slösar detta format med en fil per referens både lagringsutrymme och försämrar prestandan.
Detta kommando används för att lösa lagrings- och prestandaproblem genom att lagra referenserna i en enda fil, $GIT_DIR/packed-refs. När en referens saknas i den traditionella kataloghierarkin $GIT_DIR/refs, slås den upp i denna fil och används om den hittas.
Efterföljande uppdateringar av grenar skapar alltid nya filer under kataloghierarkin $GIT_DIR/refs.
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.
ALTERNATIV
- --all
-
Kommandot packar som standard alla taggar och referenser som redan är packade, och lämnar andra referenser ifred. Detta beror på att grenar förväntas utvecklas aktivt och att packa deras tips inte förbättrar prestandan. Det här alternativet gör att alla referenser också packas, med undantag för dolda referenser, trasiga referenser och symboliska referenser. Användbart för ett repo med många grenar av historiskt intresse.
- --no-prune
-
Kommandot tar vanligtvis bort lösa referenser under hierarkin
$GIT_DIR/refsefter att ha packat dem. Den här alternativet säger att det inte ska göra det. - --auto
-
Packa referenser efter behov beroende på referensdatabasens aktuella tillstånd. Beteendet beror på vilket referensformat som används av arkivet och kan ändras i framtiden.
-
"filer": Lösa referenser packas i filen
packed-refsbaserat på förhållandet mellan lösa referenser och storleken på filenpacked-refs. Ju störrepacked-refs-filen är, desto fler lösa referenser måste finnas innan vi packar om. -
"reftable": Tabeller komprimeras så att de bildar en geometrisk sekvens. För två tabeller N och N+1, där N+1 är nyare, bibehålls egenskapen att N är minst dubbelt så stor som N+1. Endast tabeller som bryter mot denna egenskap komprimeras.
-
- --include <mönster>
-
Packa referenser baserat på ett
glob(7)-mönster. Upprepningar av detta alternativ ackumulerar inkluderingsmönster. Om en referens ingår i både--includeoch--exclude, har--excludeföreträde. Användning av--includeförhindrar att alla taggar inkluderas som standard. Symboliska referenser och trasiga referenser kommer aldrig att packas. När det används med--allblir det en noop. Använd--no-includeför att rensa och återställa listan över mönster. - --exclude <mönster>
-
Packa inte referenser som matchar det givna
glob(7)-mönstret. Upprepningar av detta alternativ ackumulerar undantagsmönster. Använd--no-excludeför att rensa och återställa listan över mönster. Om en referens redan är packad, kommer inkludering av den med--excludeinte att packa upp den.När det används med
--all, packa endast lösa referenser som inte matchar något av de angivna--exclude-mönstren.När det används med
--includekommer referenser som anges till--include, minus referenser som anges till--exclude, att packas.
BUGGAR
Äldre dokumentation skriven innan packed-refs-mekanismen introducerades kan fortfarande säga saker som ".git/refs/heads/<gren> file exists" när det betyder "branch <gren> exists".
GIT
En del av git[1]-sviten