'\" t .\" Title: git-apply .\" 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: English .\" .TH "GIT\-APPLY" "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-apply \- اعمال یک وصله به فایل‌ها و/یا به ایندکس .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fBgit\fR \fBapply\fR [\fB\-\-stat\fR] [\fB\-\-numstat\fR] [\fB\-\-summary\fR] [\fB\-\-check\fR] [\fB\-\-index\fR | \fB\-\-intent\-to\-add\fR] [\fB\-\-3way\fR] [\fB\-\-ours\fR | \fB\-\-theirs\fR | \fB\-\-union\fR] [\fB\-\-apply\fR] [\fB\-\-no\-add\fR] [\fB\-\-build\-fake\-ancestor=\fR\fI\fR] [\fB\-R\fR | \fB\-\-reverse\fR] [\fB\-\-allow\-binary\-replacement\fR | \fB\-\-binary\fR] [\fB\-\-reject\fR] [\fB\-z\fR] [\fB\-p\fR\fI\fR] [\fB\-C\fR\fI\fR] [\fB\-\-inaccurate\-eof\fR] [\fB\-\-recount\fR] [\fB\-\-cached\fR] [\fB\-\-ignore\-space\-change\fR | \fB\-\-ignore\-whitespace\fR] [\fB\-\-whitespace=\fR(\fBnowarn\fR|\fBwarn\fR|\fBfix\fR|\fBerror\fR|\fBerror\-all\fR)] [\fB\-\-exclude=\fR\fI\fR] [\fB\-\-include=\fR\fI\fR] [\fB\-\-directory=\fR\fI\fR] [\fB\-\-verbose\fR | \fB\-\-quiet\fR] [\fB\-\-unsafe\-paths\fR] [\fB\-\-allow\-empty\fR] [\fI\fR\&...] .fi .sp .SH "توضیحات (DESCRIPTION)" .sp خروجی diff ارائه‌شده (یعنی «یک وصله») را می‌خواند و آن را بر روی فایل‌ها اعمال می‌کند\&. هنگام اجرا از یک زیردایرکتوری در یک مخزن، مسیرهای وصله‌شده در خارج از دایرکتوری نادیده گرفته می‌شوند\&. با گزینه \fB\-\-index\fR، وصله به ایندکس نیز اعمال می‌شود، و با گزینه \fB\-\-cached\fR، وصله تنها به ایندکس اعمال می‌گردد\&. بدون این گزینه‌ها، دستور وصله را فقط روی فایل‌ها اعمال می‌کند و نیازی به قرار داشتن آن‌ها در یک مخزن گیت ندارد\&. .sp این دستور وصله را اعمال می‌کند اما کامیت ایجاد نمی‌کند\&. برای ایجاد کامیت از وصله‌های تولیدشده توسط \fBgit-format-patch\fR(1) و/یا دریافت‌شده از طریق ایمیل، از \fBgit-am\fR(1) استفاده کنید\&. .SH "گزینه‌ها (OPTIONS)" .PP \fI\fR\&.\&.\&. .RS 4 فایل‌هایی که وصله باید از آن‌ها خوانده شود\&. می‌توان از \fB\-\fR برای خواندن از ورودی استاندارد استفاده کرد\&. .RE .PP \fB\-\-stat\fR .RS 4 به جای اعمال وصله، خروجی diffstat را برای ورودی نمایش می‌دهد\&. گزینه "apply" را غیرفعال می‌کند\&. .RE .PP \fB\-\-numstat\fR .RS 4 مشابه \fB\-\-stat\fR، اما تعداد خطوط اضافه و حذف‌شده را با نماد ده‌دهی و نام مسیر را بدون اختصار نشان می‌دهد تا برای پردازش ماشینی مناسب‌تر باشد\&. برای فایل‌های باینری، به جای گفتن \fB0\fR \fB0\fR، دو \fB\-\fR خروجی می‌دهد\&. گزینه "apply" را غیرفعال می‌کند\&. .RE .PP \fB\-\-summary\fR .RS 4 به جای اعمال وصله، خلاصه‌ای فشرده از اطلاعات به‌دست‌آمده از سرآیندهای گسترش‌یافته git diff، مانند ایجادها، تغییر نام‌ها و تغییرات حالت (mode) را نمایش می‌دهد\&. گزینه "apply" را غیرفعال می‌کند\&. .RE .PP \fB\-\-check\fR .RS 4 به جای اعمال وصله، بررسی می‌کند که آیا وصله بر روی درخت کاری فعلی و/یا فایل ایندکس قابل اعمال است یا خیر و خطاهایش را شناسایی می‌کند\&. گزینه "apply" را غیرفعال می‌کند\&. .RE .PP \fB\-\-index\fR .RS 4 وصله را هم به ایندکس و هم به درخت کاری اعمال می‌کند (یا اگر \fB\-\-check\fR فعال باشد، صرفاً بررسی می‌کند که آیا به هر دو به صورت تمیز اعمال می‌شود یا خیر)\&. توجه داشته باشید که \fB\-\-index\fR انتظار دارد مدخل‌های ایندکس و نسخه‌های درخت کاری برای مسیرهای مربوطه کاملاً یکسان باشند (محتوا و متادیتای آن‌ها مانند حالت فایل باید مطابقت داشته باشد)، و در غیر این صورت خطا می‌دهد، حتی اگر وصله به صورت مجزا به هر دوی ایندکس و درخت کاری به طور تمیز اعمال شود\&. .RE .PP \fB\-\-cached\fR .RS 4 وصله را تنها به ایندکس اعمال می‌کند، بدون اینکه درخت کاری دستکاری شود\&. اگر \fB\-\-check\fR فعال باشد، صرفاً بررسی می‌کند که آیا وصله به طور تمیز بر مدخل ایندکس اعمال می‌شود یا خیر\&. .RE .PP \fB\-N\fR, \fB\-\-intent\-to\-add\fR .RS 4 هنگام اعمال وصله تنها روی درخت کاری، فایل‌های جدید را علامت‌گذاری می‌کند تا بعداً به ایندکس اضافه شوند (گزینه \fB\-\-intent\-to\-add\fR در \fBgit-add\fR(1) را ببینید)\&. در صورت استفاده از \fB\-\-index\fR یا \fB\-\-cached\fR این گزینه نادیده گرفته می‌شود و خارج از یک مخزن گیت هیچ اثری ندارد\&. توجه داشته باشید که \fB\-\-index\fR می‌تواند به طور ضمنی توسط گزینه‌های دیگر مانند \fB\-\-3way\fR فعال شود\&. .RE .PP \fB\-3\fR, \fB\-\-3way\fR .RS 4 اگر وصله هویت blobهایی را که قرار است بر آن‌ها اعمال شود ثبت کرده باشد و ما آن blobها را به صورت محلی در اختیار داشته باشیم، تلاش برای ادغام ۳\-طرفه می‌کند و احتمالاً نشانگرهای تعارض را در فایل‌های درخت کاری باقی می‌گذارد تا کاربر آن‌ها را حل کند\&. این گزینه مستلزم گزینه \fB\-\-index\fR است مگر اینکه از گزینه \fB\-\-cached\fR استفاده شود، و با گزینه \fB\-\-reject\fR ناسازگار است\&. در صورت استفاده همراه با گزینه \fB\-\-cached\fR، هرگونه تعارض در مراحل بالاتر (higher stages) در کش رها می‌شود\&. .RE .PP \fB\-\-ours\fR, \fB\-\-theirs\fR, \fB\-\-union\fR .RS 4 به جای باقی گذاشتن تعارض‌ها در فایل، تعارض‌ها را به نفع خطوط سمت ما (یا سمت آن‌ها یا هر دو) حل می‌کند\&. نیازمند \fB\-\-3way\fR است\&. .RE .PP \fB\-\-build\-fake\-ancestor=\fR\fI\fR .RS 4 خروجی جدیدتر \fBgit\fR \fBdiff\fR دارای \fIاطلاعات ایندکس\fR جاسازی‌شده برای هر blob است تا به شناسایی نسخه اصلی که وصله بر آن اعمال می‌شود کمک کند\&. هنگامی که این پرچم داده می‌شود و در صورتی که نسخه‌های اصلی blobها به صورت محلی در دسترس باشند، یک ایندکس موقت شامل آن blobها می‌سازد\&. .sp هنگامی که با یک تغییر حالت خالص (که فاقد اطلاعات ایندکس است) مواجه می‌شود، اطلاعات در عوض از ایندکس فعلی خوانده می‌شود\&. .RE .PP \fB\-R\fR, \fB\-\-reverse\fR .RS 4 اعمال وصله به صورت معکوس\&. .RE .PP \fB\-\-reject\fR .RS 4 به منظور اتمیک بودن، \fBgit\fR \fBapply\fR به طور پیش‌فرض در صورتی که برخی از قطعات (hunks) اعمال نشوند، کل وصله را ناموفق کرده و درخت کاری را دست‌نخورده باقی می‌گذارد\&. این گزینه بخش‌هایی از وصله را که قابل اعمال هستند اعمال می‌کند و قطعات ردشده را در فایل‌های متناظر \fB*\&.rej\fR رها می‌سازد\&. .RE .PP \fB\-z\fR .RS 4 هنگامی که \fB\-\-numstat\fR مشخص شده باشد، نام مسیرها را تغییر نمی‌دهد، بلکه از یک قالب خوانا برای ماشین که با کاراکتر NUL خاتمه می‌یابد استفاده می‌کند\&. .sp بدون این گزینه، نام مسیرهایی با کاراکترهای "غیرعادی" همان‌طور که برای متغیر پیکربندی \fBcore\&.quotePath\fR توضیح داده شده است نقل‌قول می‌شوند (نگاه کنید به \fBgit-config\fR(1))\&. .RE .PP \fB\-p\fR\fI\fR .RS 4 حذف \fI\fR بخش ابتدایی مسیر (که با اسلش جدا شده‌اند) از مسیرهای سنتی diff\&. به عنوان مثال با \fB\-p2\fR، وصله‌ای که بر روی \fBa/dir/file\fR است مستقیماً بر روی \fBfile\fR اعمال خواهد شد\&. مقدار پیش‌فرض ۱ است\&. .RE .PP \fB\-C\fR\fI\fR .RS 4 اطمینان از اینکه حداقل \fI\fR خط از بافت پیرامونی قبل و بعد از هر تغییر مطابقت داشته باشد\&. هنگامی که خطوط بافت کمتری وجود داشته باشد، همه آن‌ها باید مطابقت داشته باشند\&. به طور پیش‌فرض هیچ بافتی نادیده گرفته نمی‌شود\&. .RE .PP \fB\-\-unidiff\-zero\fR .RS 4 به طور پیش‌فرض، \fBgit\fR \fBapply\fR انتظار دارد وصله‌ای که اعمال می‌شود یک diff یکپارچه (unified diff) با حداقل یک خط بافت باشد\&. این یک اقدام ایمنی مناسب فراهم می‌کند، اما هنگام اعمال یک diff تولیدشده با \fB\-\-unified=0\fR دچار مشکل می‌شود\&. برای دور زدن این بررسی‌ها از \fB\-\-unidiff\-zero\fR استفاده کنید\&. .sp توجه داشته باشید به دلایلی که در بالا ذکر شد، استفاده از وصله‌های بدون بافت توصیه نمی‌شود\&. .RE .PP \fB\-\-apply\fR .RS 4 اگر از هر یک از گزینه‌های مشخص‌شده با عنوان «گزینه \fIapply\fR را غیرفعال می‌کند» در بالا استفاده کنید، \fBgit\fR \fBapply\fR اطلاعات درخواستی را بدون اعمال واقعی وصله می‌خواند و خروجی می‌دهد\&. این پرچم را پس از آن پرچم‌ها بیاورید تا علاوه بر نمایش اطلاعات، وصله نیز اعمال شود\&. .RE .PP \fB\-\-no\-add\fR .RS 4 هنگام اعمال یک وصله، موارد اضافه‌شده توسط وصله را نادیده می‌گیرد\&. این گزینه می‌تواند برای استخراج بخش مشترک بین دو فایل استفاده شود؛ با این روش که ابتدا \fBdiff\fR بین آن‌ها اجرا شده و نتیجه با این گزینه اعمال گردد، که بخش‌های حذفی را اعمال می‌کند اما بخش‌های افزایشی را اعمال نخواهد کرد\&. .RE .PP \fB\-\-allow\-binary\-replacement\fR, \fB\-\-binary\fR .RS 4 از لحاظ تاریخی ما اعمال وصله‌های باینری را بدون اجازه صریح از طرف کاربر مجاز نمی‌دانستیم، و این پرچم روشی برای صدور این اجازه بود\&. در حال حاضر، ما همیشه اعمال وصله‌های باینری را مجاز می‌دانیم، بنابراین این گزینه بی‌اثر (no-op) است\&. .RE .PP \fB\-\-exclude=\fR\fI\fR .RS 4 تغییرات را روی فایل‌های منطبق با \fI\fR اعمال نکنید\&. این گزینه می‌تواند هنگام ایمپورت مجموعه‌های وصله (patchsets) که در آن‌ها می‌خواهید فایل‌ها یا دایرکتوری‌های خاصی را مستثنی کنید مفید باشد\&. .RE .PP \fB\-\-include=\fR\fI\fR .RS 4 تغییرات را روی فایل‌های منطبق با \fI\fR اعمال کنید\&. این گزینه می‌تواند هنگام وارد کردن مجموعه‌های وصله، جایی که می‌خواهید فایل‌ها یا دایرکتوری‌های خاصی را بگنجانید مفید باشد\&. .sp هنگامی که الگوهای \fB\-\-exclude\fR و \fB\-\-include\fR استفاده می‌شوند، آن‌ها به ترتیبی که در خط فرمان ظاهر می‌شوند بررسی می‌گردند و اولین تطابق تعیین می‌کند که آیا وصله بر روی هر مسیر اعمال شود یا خیر\&. وصله برای مسیری که با هیچ الگوی شمول/عدم شمولی مطابقت ندارد، در صورتی که هیچ الگوی شمول (include) در خط فرمان نباشد به طور پیش‌فرض اعمال می‌شود، و اگر الگوی شمول وجود داشته باشد نادیده گرفته خواهد شد\&. .RE .PP \fB\-\-ignore\-space\-change\fR, \fB\-\-ignore\-whitespace\fR .RS 4 هنگام اعمال یک وصله، در صورت لزوم تغییرات در فاصله‌های خالی خطوط بافت را نادیده بگیرید\&. خطوط بافت فاصله‌های خالی خود را حفظ خواهند کرد و صرف‌نظر از مقدار گزینه \fB\-\-whitespace\fR، اصلاح فاصله‌های خالی بر روی آن‌ها اعمال نخواهد شد\&. با این حال خطوط جدید همچنان اصلاح می‌شوند\&. .RE .PP \fB\-\-whitespace=\fR\fI\fR .RS 4 هنگام اعمال وصله، خط جدید یا تغییریافته‌ای را که دارای خطاهای فاصله سفید است تشخیص می‌دهد\&. مواردی که خطای فاصله سفید به شمار می‌روند توسط پیکربندی \fBcore\&.whitespace\fR کنترل می‌شوند\&. به طور پیش‌فرض، فاصله‌های خالی انتهایی (از جمله خطوطی که صرفاً از فاصله‌های خالی تشکیل شده‌اند) و کاراکتر فاصله‌ای که بلافاصله پس از آن یک کاراکتر تب در ابتدای تورفتگی خط قرار دارد، خطای فاصله سفید در نظر گرفته می‌شوند\&. .sp به طور پیش‌فرض، این دستور پیام‌های هشدار را چاپ می‌کند اما وصله را اعمال می‌نماید\&. هنگامی که \fBgit\-apply\fR برای آمارگیری و نه برای اعمال وصله استفاده شود، پیش‌فرض آن \fBnowarn\fR است\&. .sp می‌توانید از مقادیر مختلف \fI\fR برای کنترل این رفتار استفاده کنید: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBnowarn\fR هشدار فاصله‌های خالی انتهایی را غیرفعال می‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBwarn\fR برای چند نمونه از این خطاها هشدار چاپ می‌کند، اما وصله را همان‌طور که هست اعمال می‌نماید (پیش‌فرض)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBfix\fR برای چند نمونه از این خطاها هشدار چاپ می‌کند و وصله را پس از اصلاح آن‌ها اعمال می‌نماید (\fBstrip\fR یک نام مترادف است \(em در گذشته این ابزار فقط کاراکترهای فاصله سفید انتهایی را به عنوان خطا در نظر می‌گرفت و اصلاح شامل \fIحذف\fR آن‌ها بود، اما گیت امروزی کارهای بیشتری انجام می‌دهد)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBerror\fR برای چند نمونه از این خطاها هشدار چاپ می‌کند و از اعمال وصله خودداری می‌ورزد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBerror\-all\fR مشابه \fBerror\fR است اما تمامی خطاها را نمایش می‌دهد\&. .RE .RE .PP \fB\-\-inaccurate\-eof\fR .RS 4 تحت شرایط خاص، برخی از نسخه‌های \fBdiff\fR عدم وجود خط جدید (newline) در انتهای فایل را به درستی تشخیص نمی‌دهند\&. در نتیجه، وصله‌های ایجادشده توسط چنین برنامه‌های \fBdiff\fR خطوط ناقص را به درستی ثبت نمی‌کنند\&. این گزینه با دور زدن این باگ، پشتیبانی از اعمال چنین وصله‌هایی را اضافه می‌کند\&. .RE .PP \fB\-v\fR, \fB\-\-verbose\fR .RS 4 گزارش روند پیشرفت به stderr\&. به طور پیش‌فرض، فقط پیامی درباره وصله فعلی در حال اعمال چاپ می‌شود\&. این گزینه باعث گزارش اطلاعات اضافی خواهد شد\&. .RE .PP \fB\-q\fR, \fB\-\-quiet\fR .RS 4 سرکوب خروجی stderr\&. پیام‌های مربوط به وضعیت وصله و پیشرفت کار چاپ نخواهند شد\&. .RE .PP \fB\-\-recount\fR .RS 4 به شمارش خطوط در سرآیندهای قطعات (hunk headers) اعتماد نکنید، بلکه آن‌ها را با بازرسی وصله استنباط کنید (مثلاً پس از ویرایش وصله بدون تنظیم مناسب سرآیندهای قطعات)\&. .RE .PP \fB\-\-directory=\fR\fI\fR .RS 4 پیشوند دادن \fI\fR به تمام نام‌های فایل\&. اگر آرگومان \fB\-p\fR نیز ارسال شده باشد، قبل از پیشوند کردن ریشه جدید اعمال می‌شود\&. .sp به عنوان مثال، وصله‌ای که درباره به‌روزرسانی \fBa/git\-gui\&.sh\fR به \fBb/git\-gui\&.sh\fR صحبت می‌کند، می‌تواند با اجرای \fBgit\fR \fBapply\fR \fB\-\-directory=modules/git\-gui\fR بر روی فایل موجود در درخت کاری \fBmodules/git\-gui/git\-gui\&.sh\fR اعمال شود\&. .RE .PP \fB\-\-unsafe\-paths\fR .RS 4 به طور پیش‌فرض، وصله‌ای که خارج از محدوده کاری را تحت تأثیر قرار دهد (چه یک درخت کاری تحت کنترل گیت، یا دایرکتوری کاری فعلی هنگامی که \fBgit\fR \fBapply\fR به عنوان جایگزینی برای GNU \fBpatch\fR استفاده می‌شود) به عنوان یک اشتباه (یا اقدام مخرب) رد می‌شود\&. .sp هنگامی که \fBgit\fR \fBapply\fR به عنوان یک "GNU \fBpatch\fR بهتر" استفاده می‌شود، کاربر می‌تواند گزینه \fB\-\-unsafe\-paths\fR را برای لغو این بررسی ایمنی ارسال کند\&. این گزینه هنگامی که \fB\-\-index\fR یا \fB\-\-cached\fR در حال استفاده باشد هیچ اثری ندارد\&. .RE .PP \fB\-\-allow\-empty\fR .RS 4 برای وصله‌هایی که فاقد diff هستند خطایی برنگردانید\&. این شامل وصله‌های خالی و وصله‌های دارای متن کامیت به تنهایی می‌شود\&. .RE .SH "پیکربندی (CONFIGURATION)" .sp تمام موارد زیر این خط در این بخش به طور گزینشی از مستندات \fBgit-config\fR(1) گنجانده شده است\&. محتوا همان چیزی است که در آنجا یافت می‌شود: .PP \fBapply\&.ignoreWhitespace\fR .RS 4 هنگامی که روی \fBchange\fR تنظیم شود، به \fBgit\fR \fBapply\fR می‌گوید که تغییرات در فاصله‌های خالی را نادیده بگیرد، همانند گزینه \fB\-\-ignore\-space\-change\fR\&. هنگامی که روی یکی از مقادیر: \fBno\fR، \fBnone\fR، \fBnever\fR، \fBfalse\fR تنظیم شود، به \fBgit\fR \fBapply\fR می‌گوید که به تمامی تفاوت‌های فاصله خالی احترام بگذارد\&. .RE .PP \fBapply\&.whitespace\fR .RS 4 به \fBgit\fR \fBapply\fR می‌گوید چگونه با فاصله‌های خالی رفتار کند، همانند گزینه \fB\-\-whitespace\fR\&. .RE .SH "زیرماژول‌ها (SUBMODULES)" .sp اگر وصله شامل هرگونه تغییری در زیرماژول‌ها باشد، آن‌گاه \fBgit\fR \fBapply\fR با این تغییرات به شرح زیر رفتار می‌کند\&. .sp اگر \fB\-\-index\fR مشخص شده باشد (به صورت صریح یا ضمنی)، کامیت‌های زیرماژول باید دقیقاً با ایندکس مطابقت داشته باشند تا وصله اعمال شود\&. اگر هر یک از زیرماژول‌ها چک‌اوت (checked-out) شده باشند، این چک‌اوت‌ها کاملاً نادیده گرفته می‌شوند، یعنی نیازی نیست که آن‌ها به‌روز یا تمیز باشند و به‌روزرسانی نیز نمی‌شوند\&. .sp اگر \fB\-\-index\fR مشخص نشده باشد، کامیت‌های زیرماژول در وصله نادیده گرفته می‌شوند و تنها عدم وجود یا وجود زیردایرکتوری مربوطه بررسی شده و (در صورت امکان) به‌روزرسانی می‌گردد\&. .SH "همچنین ببینید (SEE ALSO)" .sp \fBgit-am\fR(1)\&. .SH "گیت (GIT)" .sp بخشی از مجموعه \fBgit\fR(1)