'\" t .\" Title: git-checkout-index .\" 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\-CHECKOUT\-INDEX" "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-checkout-index \- کپی فایل‌ها از ایندکس به درخت کاری .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fIgit checkout\-index\fR [\-u] [\-q] [\-a] [\-f] [\-n] [\-\-prefix=] [\-\-stage=|all] [\-\-temp] [\-\-ignore\-skip\-worktree\-bits] [\-z] [\-\-stdin] [\-\-] [\&...] .fi .sp .SH "توضیحات (DESCRIPTION)" .sp تمام فایل‌های فهرست‌شده را از ایندکس به دایرکتوری کاری کپی می‌کند (فایل‌های موجود بازنویسی نمی‌شوند)\&. .SH "گزینه‌ها (OPTIONS)" .PP \-u, \-\-index .RS 4 اطلاعات stat را برای مدخل‌های استخراج‌شده در فایل ایندکس به‌روزرسانی می‌کند\&. .RE .PP \-q, \-\-quiet .RS 4 در صورتی که فایل‌ها از قبل وجود داشته باشند یا در ایندکس نباشند، پیامی نمایش داده نمی‌شود (حالت بی‌صدا)\&. .RE .PP \-f, \-\-force .RS 4 بازنویسی فایل‌های موجود را اجبار می‌کند\&. .RE .PP \-a, \-\-all .RS 4 تمام فایل‌های موجود در ایندکس را استخراج می‌کند، به جز فایل‌هایی که بیت skip\-worktree برای آن‌ها فعال است (ببینید: \fB\-\-ignore\-skip\-worktree\-bits\fR)\&. نمی‌توان از این گزینه همراه با نام فایل‌های مشخص استفاده کرد\&. .RE .PP \-n, \-\-no\-create .RS 4 فایل‌های جدید را استخراج نمی‌کند، فقط فایل‌هایی را که قبلاً استخراج شده‌اند تازه‌سازی می‌کند\&. .RE .PP \-\-prefix= .RS 4 هنگام ایجاد فایل‌ها، را به ابتدای نام آن‌ها اضافه می‌کند (معمولاً یک دایرکتوری شامل یک / در انتها)\&. .RE .PP \-\-stage=|all .RS 4 به جای استخراج مدخل‌های ادغام‌نشده، فایل‌ها را از مرحله (stage) مشخص‌شده کپی می‌کند\&. مقدار باید بین ۱ تا ۳ باشد\&. نکته: گزینه \-\-stage=all به طور خودکار شامل \-\-temp نیز می‌شود\&. .RE .PP \-\-temp .RS 4 به جای کپی کردن فایل‌ها در دایرکتوری کاری، محتوا را در فایل‌های موقت می‌نویسد\&. نگاشت نام فایل‌های موقت به مسیرهای اصلی در stdout نوشته خواهد شد\&. .RE .PP \-\-ignore\-skip\-worktree\-bits .RS 4 تمام فایل‌ها را استخراج می‌کند، از جمله فایل‌هایی که بیت skip\-worktree برای آن‌ها فعال است\&. .RE .PP \-\-stdin .RS 4 به جای دریافت فهرستی از مسیرها از خط فرمان، فهرست مسیرها را از ورودی استاندارد می‌خواند\&. مسیرها به‌طور پیش‌فرض با نویسه LF (یعنی یک مسیر در هر خط) از هم جدا می‌شوند\&. .RE .PP \-z .RS 4 تنها با \fB\-\-stdin\fR معنی دارد؛ مسیرها به جای LF با نویسه NUL از هم جدا می‌شوند\&. .RE .PP \-\- .RS 4 هیچ‌یک از آرگومان‌های بعدی را به عنوان گزینه تفسیر نمی‌کند\&. .RE .sp ترتیب فلگ‌ها در گذشته اهمیت داشت، اما اکنون دیگر تفاوتی ندارد\&. .sp اجرای خالی \fBgit\fR \fBcheckout\-index\fR هیچ کاری انجام نمی‌دهد\&. احتمالاً منظور شما \fBgit\fR \fBcheckout\-index\fR \fB\-a\fR بوده است\&. و اگر می‌خواهید بازنویسی را اجبار کنید، باید از \fBgit\fR \fBcheckout\-index\fR \fB\-f\fR \fB\-a\fR استفاده کنید\&. .sp شهودی بودن هدف این دستور نیست؛ تکرارپذیری هدف آن است\&. دلیل رفتار «نبود آرگومان یعنی هیچ کاری انجام نشود» این است که در اسکریپت‌ها بتوانید چنین کارهایی انجام دهید: .sp .if n \{\ .RS 4 .\} .nf $ find \&. \-name \*(Aq*\&.h\*(Aq \-print0 | xargs \-0 git checkout\-index \-f \-\- .fi .if n \{\ .RE .\} .sp .sp این دستور تمام فایل‌های موجود \fB*\&.h\fR را با نسخه‌های کش‌شده آن‌ها جایگزین می‌کند\&. اگر یک خط فرمان خالی به معنی «همه» می‌بود، در این صورت همه‌چیز در ایندکس به اجبار تازه‌سازی می‌شد که هدف این نبود\&. اما از آنجا که \fIgit checkout\-index\fR گزینه \-\-stdin را می‌پذیرد، استفاده از روش زیر سریع‌تر خواهد بود: .sp .if n \{\ .RS 4 .\} .nf $ find \&. \-name \*(Aq*\&.h\*(Aq \-print0 | git checkout\-index \-f \-z \-\-stdin .fi .if n \{\ .RE .\} .sp .sp استفاده از \fB\-\-\fR زمانی که می‌دانید باقی آرگومان‌ها نام فایل هستند، ایده بسیار خوبی است؛ این کار از بروز مشکل با نام فایل‌هایی نظیر \fB\-a\fR جلوگیری می‌کند\&. استفاده از \fB\-\-\fR در اسکریپت‌ها یک شیوه مناسب و پیشنهادی است\&. .SH "استفاده از \-\-TEMP یا \-\-STAGE=ALL (USING \-\-TEMP OR \-\-STAGE=ALL)" .sp هنگامی که \fB\-\-temp\fR استفاده شود (یا با \fB\-\-stage=all\fR به‌طور ضمنی اعمال گردد)، دستور \fIgit checkout\-index\fR برای هر مدخل ایندکس که استخراج می‌شود یک فایل موقت ایجاد می‌کند\&. ایندکس با اطلاعات stat به‌روزرسانی نخواهد شد\&. این گزینه‌ها زمانی کاربرد دارند که فراخواننده به تمام مراحل (stages) همه مدخل‌های ادغام‌نشده نیاز داشته باشد تا فایل‌های ادغام‌نشده توسط یک ابزار ادغام خارجی پردازش شوند\&. .sp فهرستی در stdout نوشته خواهد شد که ارتباط میان نام فایل‌های موقت و مسیرهای ردگیری‌شده را ارائه می‌دهد\&. قالب این فهرست دارای دو حالت است: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} tempname TAB path RS .sp قالب نخست زمانی استفاده می‌شود که \fB\-\-stage\fR مشخص نشده باشد یا برابر با \fB\-\-stage=all\fR نباشد\&. فیلد tempname نام فایل موقتی است که محتوای فایل را در بر دارد و path مسیر ردگیری‌شده در ایندکس است\&. تنها مدخل‌های درخواست‌شده در خروجی درج می‌شوند\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} stage1temp SP stage2temp SP stage3tmp TAB path RS .sp قالب دوم زمانی استفاده می‌شود که \fB\-\-stage=all\fR باشد\&. سه فیلد موقت مراحل (stage1temp, stage2temp, stage3temp) نام فایل موقت را در صورت وجود مدخل مرحله در ایندکس یا علامت \&. را در صورت عدم وجود مدخل مرحله درج می‌کنند\&. مسیرهایی که تنها مدخل مرحله 0 دارند همیشه از خروجی حذف می‌شوند\&. .RE .sp در هر دو قالب، RS (جداکننده رکورد) به‌طور پیش‌فرض خط جدید (newline) است اما اگر \-z در خط فرمان داده شده باشد، بایت null خواهد بود\&. نام فایل‌های موقت همیشه رشته‌های امن هستند؛ هرگز شامل جداکننده‌های دایرکتوری یا کاراکترهای فاصله نخواهند بود\&. فیلد path همیشه نسبت به دایرکتوری جاری و نام فایل‌های موقت همیشه نسبت به دایرکتوری ریشه سطح بالا (top level) است\&. .sp اگر شیئی که در یک فایل موقت کپی می‌شود یک پیوند نمادین (symlink) باشد، محتوای پیوند در یک فایل معمولی نوشته می‌شود\&. استفاده از این اطلاعات به عهده کاربر نهایی یا دستور سطح بالا (پورسلین) است\&. .SH "مثال‌ها (EXAMPLES)" .PP به‌روزرسانی و تازه‌سازی فقط فایل‌هایی که از قبل استخراج شده‌اند .RS 4 .sp .if n \{\ .RS 4 .\} .nf $ git checkout\-index \-n \-f \-a && git update\-index \-\-ignore\-missing \-\-refresh .fi .if n \{\ .RE .\} .sp .RE .PP استفاده از \fIgit checkout\-index\fR برای «برون‌بری یک درخت کامل» .RS 4 قابلیت پیشوند (prefix) استفاده از \fIgit checkout\-index\fR را به عنوان یک تابع «برون‌بری به صورت درخت» بسیار ساده می‌کند\&. کافی است درخت مورد نظر را در ایندکس بخوانید و دستور زیر را اجرا کنید: .sp .if n \{\ .RS 4 .\} .nf $ git checkout\-index \-\-prefix=git\-export\-dir/ \-a .fi .if n \{\ .RE .\} .sp دستور \fBgit\fR \fBcheckout\-index\fR ایندکس را در دایرکتوری مشخص‌شده «برون‌بری» می‌کند\&. .sp علامت "/" پایانی اهمیت دارد\&. نام فایل‌های برون‌بری‌شده دقیقاً با رشته تعیین‌شده پیشوندگذاری می‌شوند\&. این مورد را با مثال بعدی مقایسه کنید\&. .RE .PP برون‌بری فایل‌ها با یک پیشوند .RS 4 .sp .if n \{\ .RS 4 .\} .nf $ git checkout\-index \-\-prefix=\&.merged\- Makefile .fi .if n \{\ .RE .\} .sp این دستور نسخه ذخیره‌شده جاری از \fBMakefile\fR را در فایل \fB\&.merged\-Makefile\fR استخراج می‌کند\&. .RE .SH "همچنین ببینید (SEE ALSO)" .sp \fBgit-update-index\fR(1), \fBgit-read-tree\fR(1), \fBgit\fR(1) .SH "گیت (GIT)" .sp بخشی از مجموعه \fBgit\fR(1)