| GIT-PACK-REFS(1) | Git Manual | GIT-PACK-REFS(1) |
نام (NAME)
git-pack-refs - بستهبندی سرشاخهها و برچسبها برای دسترسی کارآمدتر به مخزن
خلاصه دستور (SYNOPSIS)
git pack-refs [--all] [--no-prune] [--auto] [--include <pattern>] [--exclude <pattern>]
توضیحات (DESCRIPTION)
به طور سنتی، نوک شاخهها و برچسبها (که در مجموع به عنوان مرجعها یا refs شناخته میشوند) به صورت یک فایل به ازای هر مرجع در یک (زیر)پوشه زیر مسیر $GIT_DIR/refs ذخیره میشدند. در حالی که نوک بسیاری از شاخهها مکرراً بهروزرسانی میشوند، اکثر برچسبها و نوک برخی شاخهها هرگز تغییر نمیکنند. هنگامی که یک مخزن صدها یا هزاران برچسب دارد، این قالب «یک فایل به ازای هر مرجع» هم فضای ذخیرهسازی را هدر میدهد و هم کارایی سیستم را کاهش میدهد.
این دستور برای حل مشکل فضای ذخیرهسازی و کارایی، از طریق ذخیره کردن مراجع در یک فایل واحد با نام $GIT_DIR/packed-refs استفاده میشود. هنگامی که مرجعی در سلسلهمراتب پوشهای سنتی $GIT_DIR/refs یافت نشود، در این فایل جستجو شده و در صورت یافت شدن استفاده میشود.
بهروزرسانیهای بعدی شاخهها همواره فایلهای جدیدی در سلسلهمراتب پوشهای $GIT_DIR/refs ایجاد میکنند.
یک روش پیشنهادی برای کار با مخازنی که دارای مراجع بسیار زیادی هستند این است که یک بار مراجع آن را با --all بستهبندی کنید و گهگاه دستور git pack-refs را اجرا نمایید. برچسبها بنا به تعریف ایستا هستند و انتظار نمیرود تغییر کنند. سرشاخهها با اجرای اولیه pack-refs --all بستهبندی میشوند، اما تنها سرشاخههایی که هماکنون فعال هستند از حالت بسته خارج خواهند شد و اجرای بعدی pack-refs (بدون --all) آنها را بدون بستهبندی باقی میگذارد.
گزینهها (OPTIONS)
--all
--no-prune
--auto
--include <pattern>
--exclude <pattern>
هنگامی که همراه با --all استفاده شود، تنها مراجع منفردی را که با هیچیک از الگوهای --exclude ارائهشده تطبیق ندارند بستهبندی میکند.
هنگامی که همراه با --include استفاده شود، مراجع ارائهشده به --include منهای مراجعی که به --exclude ارائه شدهاند، بستهبندی خواهند شد.
اشکالات (BUGS)
مستندات قدیمیتری که پیش از معرفی سازوکار packed-refs نوشته شدهاند، ممکن است همچنان عباراتی مانند "فایل .git/refs/heads/<branch> وجود دارد" را زمانی به کار ببرند که منظورشان "شاخه <branch> وجود دارد" است.
گیت (GIT)
بخشی از مجموعه git(1)
| 2026-06-29 | Git 2.55.0 |