'\" t
.\" Title: git-index-pack
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
.\" Date: 2026-06-29
.\" Manual: Git Manual
.\" Source: Git 2.55.0
.\" Language: Persian
.\"
.TH "GIT\-INDEX\-PACK" "1" "2026\-06\-29" "Git 2\&.55\&.0" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "نام (NAME)"
git-index-pack \- ساخت فایل ایندکس بسته برای یک فایل آرشیو بسته موجود
.SH "خلاصه دستور (SYNOPSIS)"
.sp
.nf
\fIgit index\-pack\fR [\-v] [\-o ] [\-\-[no\-]rev\-index]
\fIgit index\-pack\fR \-\-stdin [\-\-fix\-thin] [\-\-keep] [\-v] [\-o ]
[\-\-[no\-]rev\-index] []
.fi
.sp
.SH "توضیحات (DESCRIPTION)"
.sp
یک آرشیو بسته (\&.pack) را از فایل مشخصشده میخواند، یک فایل ایندکس بسته (\&.idx) برای آن میسازد، و بهصورت اختیاری یک ایندکس معکوس (\&.rev) برای بسته مشخصشده مینویسد\&. آرشیو بسته، همراه با ایندکس بسته، سپس میتواند در دایرکتوری objects/pack/ یک مخزن گیت قرار داده شود\&.
.SH "گزینهها (OPTIONS)"
.PP
\-v
.RS 4
نمایش جزئیات درباره آنچه در حال انجام است، از جمله وضعیت پیشرفت کار\&.
.RE
.PP
\-o
.RS 4
ایندکس بسته تولیدشده را در فایل مشخصشده مینویسد\&. بدون این گزینه، نام فایل ایندکس بسته از نام فایل آرشیو بسته با جایگزین کردن \&.pack با \&.idx ساخته میشود (و اگر نام آرشیو بسته به \&.pack ختم نشود، برنامه با خطا مواجه خواهد شد)\&.
.RE
.PP
\-\-rev\-index, \-\-no\-rev\-index
.RS 4
هنگامی که این فلگ مشخص شود، یک ایندکس معکوس (یک فایل
\fB\&.rev\fR)
متناظر با بسته دادهشده تولید میکند\&. اگر
\fB\-\-verify\fR
داده شود، از صحت ایندکس معکوس موجود اطمینان حاصل میکند\&. این گزینه بر
\fBpack\&.writeReverseIndex\fR
اولویت دارد\&.
.RE
.PP
\-\-stdin
.RS 4
هنگامی که این فلگ مشخص شود، بسته بهجای آن از ورودی استاندارد (stdin) خوانده شده و سپس یک نسخه از آن در نوشته میشود\&. اگر مشخص نشده باشد، بسته با یک نام پیشفرض که از روی محتوای بسته تعیین میشود در دایرکتوری objects/pack/ مخزن جاری گیت نوشته خواهد شد\&. اگر مشخص نشده باشد، استفاده از \-\-keep را در نظر بگیرید تا از شرایط رقابتی (race condition) بین این فرآیند و
\fIgit repack\fR
جلوگیری شود\&.
.RE
.PP
\-\-fix\-thin
.RS 4
ترمیم یک بسته «باریک» (thin pack) تولیدشده توسط
\fBgit\fR
\fBpack\-objects\fR
\fB\-\-thin\fR
(برای جزئیات بیشتر به
\fBgit-pack-objects\fR(1)
مراجعه کنید) از طریق افزودن اشیاء حذفشدهای که اشیاء دلتا بر پایه آنها هستند به بسته\&. این گزینه فقط در ترکیب با \-\-stdin کاربرد دارد\&.
.RE
.PP
\-\-keep
.RS 4
پیش از انتقال ایندکس به مقصد نهاییاش، یک فایل \&.keep خالی برای فایل بسته مرتبط ایجاد میکند\&. این گزینه معمولاً با \-\-stdin ضروری است تا از حذف بسته و ایندکس تازهساختهشده توسط یک فرآیند همزمان
\fIgit repack\fR
پیش از اینکه ارجاعها (refs) بتوانند برای استفاده از اشیاء موجود در بسته بهروزرسانی شوند، جلوگیری کند\&.
.RE
.PP
\-\-keep=
.RS 4
مانند \-\-keep، پیش از انتقال ایندکس به مقصد نهایی یک فایل \&.keep ایجاد میکند\&. با این حال، بهجای ایجاد یک فایل خالی،
\fI\fR
را به همراه یک خط جدید (LF) در فایل \&.keep قرار میدهد\&. پیام
\fI\fR
میتواند بعداً در تمام فایلهای \&.keep جستجو شود تا مواردی را که کارایی خود را از دست دادهاند شناسایی کند\&.
.RE
.PP
\-\-index\-version=[,]
.RS 4
این گزینه فقط برای استفاده در مجموعه آزمونها در نظر گرفته شده است\&. این امکان را میدهد که نسخه ایندکس بسته تولیدشده را اجبار کنید، و مدخلهای ۶۴ بیتی ایندکس را برای اشیاء واقع در بالاتر از آفست دادهشده اجباری نمایید\&.
.RE
.PP
\-\-strict[==\&...]
.RS 4
خروج با خطا در صورتی که بسته حاوی اشیاء یا پیوندهای خراب باشد\&. یک فهرست اختیاری جداشده با کاما از
\fI\fR\fB=\fR\fI\fR
میتواند ارسال شود تا شدت برخی از مشکلات احتمالی را تغییر دهد، به عنوان مثال،
\fB\-\-strict=\fR"missingEmail=ignore,badTagName=error"\&. برای اطلاعات بیشتر درباره مقادیر ممکن
\fI\fR
و
\fI\fR
به مدخل مربوط به گزینههای پیکربندی
\fBfsck\&.\fR\fI\fR
در
\fBgit-fsck\fR(1)
مراجعه کنید\&.
.RE
.PP
\-\-progress\-title
.RS 4
فقط برای استفاده داخلی\&.
.sp
عنوان نوار پیشرفت را تنظیم میکند\&. این عنوان به طور پیشفرض "Receiving objects" و هنگام مشخص شدن
\fB\-\-stdin\fR
برابر "Indexing objects" است\&.
.RE
.PP
\-\-check\-self\-contained\-and\-connected
.RS 4
خروج با خطا در صورتی که بسته حاوی پیوندهای خراب باشد\&. فقط برای استفاده داخلی\&.
.RE
.PP
\-\-fsck\-objects[==\&...]
.RS 4
خروج با خطا در صورتی که بسته حاوی اشیاء خراب باشد، اما بر خلاف
\fB\-\-strict\fR،
به دلیل پیوندهای خراب متوقف نمیشود\&. اگر بسته حاوی درختی باشد که به یک blob بنام \&.gitmodules که وجود ندارد اشاره میکند، هش آن blob را (برای بررسی توسط فراخواننده) پس از هشی که در نام فایل pack/idx قرار میگیرد چاپ میکند (بخش «نکات» را ببینید)\&.
.sp
یک فهرست اختیاری جداشده با کاما از
\fI\fR\fB=\fR\fI\fR
میتواند برای تغییر شدت برخی مشکلات احتمالی ارسال شود، به عنوان مثال،
\fB\-\-fsck\-objects=\fR"missingEmail=ignore,badTagName=ignore"\&. برای اطلاعات بیشتر درباره مقادیر ممکن
\fI\fR
و
\fI\fR
به مدخل مربوط به گزینههای پیکربندی
\fBfsck\&.\fR\fI\fR
در
\fBgit-fsck\fR(1)
مراجعه کنید\&.
.RE
.PP
\-\-threads=
.RS 4
تعداد نخها را برای ایجاد هنگام حل دلتاها مشخص میکند\&. این نیاز دارد که index\-pack با pthreads کامپایل شده باشد، در غیر این صورت این گزینه با یک هشدار نادیده گرفته میشود\&. هدف از این گزینه کاهش زمان بستهبندی در ماشینهای چندپردازندهای است\&. با این حال، مقدار حافظه مورد نیاز برای پنجره جستجوی دلتا در تعداد نخها ضرب میشود\&. تعیین 0 باعث میشود گیت تعداد پردازندهها را بهطور خودکار تشخیص داده و حداکثر از ۳ نخ استفاده کند\&.
.RE
.PP
\-\-max\-input\-size=
.RS 4
خروج با خطا در صورتی که حجم بسته بزرگتر از باشد\&.
.RE
.PP
\-\-object\-format=
.RS 4
فرمت شیء مشخصشده (الگوریتم هش) را برای بسته تعیین میکند\&. مقادیر معتبر عبارتند از
\fIsha1\fR
و (در صورت فعال بودن)
\fIsha256\fR\&. مقدار پیشفرض، الگوریتم مخزن فعلی است (تنظیمشده توسط
\fBextensions\&.objectFormat\fR)، یا
\fIsha1\fR
اگر هیچ مقداری تنظیم نشده باشد یا خارج از یک مخزن باشد\&.
.sp
این گزینه نمیتواند همراه با \-\-stdin استفاده شود\&.
.sp
نکته: در حال حاضر هیچگونه سازگاری متقابل میان مخازن SHA\-256 و مخازن SHA\-1 وجود ندارد\&.
.RE
.sp
از نظر تاریخی، ما هشدار میدادیم که مخازن SHA\-256 ممکن است بعداً در زمان معرفی چنین ویژگیهای تعاملپذیری به تغییرات ناسازگار با گذشته نیاز داشته باشند\&. امروزه، ما تنها انتظار تغییرات سازگار را داریم\&. علاوه بر این، در صورتی که چنین تغییراتی ضروری تشخیص داده شوند، میتوان انتظار داشت که مخازن SHA\-256 ایجادشده با گیت امروزی توسط نسخههای آینده گیت بدون از دست رفتن دادهها قابل استفاده باشند\&.
.PP
\-\-promisor[=]
.RS 4
پیش از ثبت نهایی ایندکس بسته، یک فایل \&.promisor برای این بسته ایجاد میکند\&. بهویژه هنگام نوشتن یک بسته promisor با \-\-fix\-thin مفید است زیرا نام بسته تا زمانی که بسته به طور کامل نوشته نشود نهایی نیست\&. اگر یک
\fI\fR
ارائه شود، آن محتوا برای مراجعات آینده در فایل \&.promisor نوشته خواهد شد\&. برای اطلاعات بیشتر به
\m[blue]\fBpartial clone\fR\m[]\&\s-2\u[1]\d\s+2
مراجعه کنید\&.
.sp
همچنین، اگر اشیایی در بسته دادهشده وجود داشته باشند که به اشیاء غیر promisor (در مخزن) ارجاع دهند، آن اشیاء غیر promisor را در یک بسته promisor بازبستهبندی میکند\&. این امر از وضعیتی که در آن یک مخزن دارای اشیاء غیر promisor باشد که از طریق اشیاء promisor قابل دسترسی هستند جلوگیری میکند\&.
.sp
نیازمند این است که مشخص نشود\&.
.RE
.SH "نکات (NOTES)"
.sp
پس از ایجاد ایندکس، هشی که در نام فایل pack/idx قرار میگیرد در stdout چاپ میشود\&. اگر از \-\-stdin نیز استفاده شده باشد، در این صورت پیشوند "pack\et" به آن اضافه میشود، یا اگر یک فایل \&.keep جدید با موفقیت ایجاد شده باشد پیشوند "keep\et" خواهد داشت\&. این برای حذف فایل \&.keep که به عنوان قفل برای جلوگیری از شرایط رقابتی با \fIgit repack\fR که پیشتر ذکر شد استفاده شده، مفید است\&.
.SH "گیت (GIT)"
.sp
بخشی از مجموعه \fBgit\fR(1)
.SH "یادداشتها (NOTES)"
.IP " 1." 4
partial clone
.RS 4
\%file:///usr/share/doc/git-doc/technical/partial-clone.html
.RE