'\" t .\" Title: git-diff .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2026-06-29 .\" Manual: راهنمای Git .\" Source: Git 2.55.0 .\" Language: Persian .\" .TH "GIT\-DIFF" "1" "2026\-06\-29" "Git 2\&.55\&.0" "راهنمای Git" .\" ----------------------------------------------------------------- .\" * 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-diff \- نمایش تغییرات میان کامیت‌ها، کامیت و درخت کاری، و غیره .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fBgit\fR \fBdiff\fR [\fI\fR] [\fI\fR] [\fB\-\-\fR] [\fI\fR\&...] \fBgit\fR \fBdiff\fR [\fI\fR] \fB\-\-cached\fR [\fB\-\-merge\-base\fR] [\fI\fR] [\fB\-\-\fR] [\fI\fR\&...] \fBgit\fR \fBdiff\fR [\fI\fR] [\fB\-\-merge\-base\fR] \fI\fR [\fI\fR\&...] \fI\fR [\fB\-\-\fR] [\fI\fR\&...] \fBgit\fR \fBdiff\fR [\fI\fR] \fI\fR\fB\&...\fR\fI\fR [\fB\-\-\fR] [\fI\fR\&...] \fBgit\fR \fBdiff\fR [\fI\fR] \fI\fR \fI\fR \fBgit\fR \fBdiff\fR [\fI\fR] \fB\-\-no\-index\fR [\fB\-\-\fR] \fI\fR \fI\fR [\fI\fR\&...] .fi .sp .SH "توضیحات (DESCRIPTION)" .sp نمایش تغییرات میان درخت کاری و ایندکس یا یک درخت، تغییرات میان ایندکس و یک درخت، تغییرات میان دو درخت، تغییرات حاصل از یک ادغام، تغییرات میان دو شیء blob، یا تغییرات میان دو فایل روی دیسک\&. .PP \fBgit\fR \fBdiff\fR [\fI\fR] [\fB\-\-\fR] [\fI\fR\&.\&.\&.] .RS 4 این حالت برای مشاهده تغییراتی است که نسبت به ایندکس (ناحیه استیج برای کامیت بعدی) ایجاد کرده‌اید\&. به عبارت دیگر، این تفاوت‌ها مواردی هستند که شما \fIمی‌توانستید\fR به گیت بگویید تا به ایندکس اضافه کند اما هنوز اضافه نکرده‌اید\&. شما می‌توانید این تغییرات را با استفاده از \fBgit-add\fR(1) آماده (استیج) کنید\&. .RE .PP \fBgit\fR \fBdiff\fR [\fI\fR] \fB\-\-no\-index\fR [\fB\-\-\fR] \fI\fR \fI\fR [\fI\fR\&.\&.\&.] .RS 4 این حالت برای مقایسه دو مسیر داده‌شده روی فایل‌سیستم است\&. هنگامی که دستور را درون یک درخت کاری تحت کنترل گیت اجرا می‌کنید و حداقل یکی از مسیرها به بیرون از درخت کاری اشاره دارد، یا هنگامی که دستور را بیرون از یک درخت کاری تحت کنترل گیت اجرا می‌کنید، می‌توانید گزینه \fB\-\-no\-index\fR را حذف کنید\&. این حالت مستلزم \fB\-\-exit\-code\fR است\&. اگر هر دو مسیر به دایرکتوری‌ها اشاره کنند، ممکن است الگوهای مسیر (pathspecs) بیشتری مشخص شوند\&. این الگوها فایل‌های گنجانده‌شده در تفاوت را محدود می‌کنند\&. تمامی این الگوهای مسیر باید نسبی باشند زیرا برای هر دو طرف diff اعمال می‌شوند\&. .RE .PP \fBgit\fR \fBdiff\fR [\fI\fR] \fB\-\-cached\fR [\fB\-\-merge\-base\fR] [\fI\fR] [\fB\-\-\fR] [\fI\fR\&.\&.\&.] .RS 4 این حالت برای مشاهده تغییراتی است که برای کامیت بعدی نسبت به \fI\fR نام‌برده استیج (آماده) کرده‌اید\&. معمولاً شما می‌خواهید مقایسه با آخرین کامیت انجام شود، بنابراین اگر \fI\fR را مشخص نکنید، مقدار پیش‌فرض آن \fBHEAD\fR خواهد بود\&. اگر \fBHEAD\fR وجود نداشته باشد (مانند شاخه‌های متولدنشده یا unborn) و \fI\fR داده نشود، تمامی تغییرات استیج‌شده را نمایش می‌دهد\&. \fB\-\-staged\fR مترادفی برای \fB\-\-cached\fR است\&. .sp اگر \fB\-\-merge\-base\fR مشخص شود، به جای استفاده از \fI\fR، از پایه ادغام (merge base) \fI\fR و \fBHEAD\fR استفاده می‌کند\&. \fBgit\fR \fBdiff\fR \fB\-\-cached\fR \fB\-\-merge\-base\fR \fBA\fR معادل است با \fBgit\fR \fBdiff\fR \fB\-\-cached\fR \fB$\fR(\fBgit\fR \fBmerge\-base\fR \fBA\fR \fBHEAD\fR)\&. .RE .PP \fBgit\fR \fBdiff\fR [\fI\fR] [\fB\-\-merge\-base\fR] \fI\fR [\fB\-\-\fR] [\fI\fR\&.\&.\&.] .RS 4 این حالت برای مشاهده تغییراتی است که در درخت کاری خود نسبت به \fI\fR نام‌برده دارید\&. می‌توانید از \fBHEAD\fR برای مقایسه با آخرین کامیت، یا از نام یک شاخه برای مقایسه با نوک یک شاخه دیگر استفاده کنید\&. .sp اگر \fB\-\-merge\-base\fR مشخص شود، به جای استفاده از \fI\fR، از پایه ادغام (merge base) \fI\fR و \fBHEAD\fR استفاده می‌کند\&. \fBgit\fR \fBdiff\fR \fB\-\-merge\-base\fR \fBA\fR معادل است با \fBgit\fR \fBdiff\fR \fB$\fR(\fBgit\fR \fBmerge\-base\fR \fBA\fR \fBHEAD\fR)\&. .RE .PP \fBgit\fR \fBdiff\fR [\fI\fR] [\fB\-\-merge\-base\fR] \fI\fR \fI\fR [\fB\-\-\fR] [\fI\fR\&.\&.\&.] .RS 4 این حالت برای مشاهده تغییرات میان دو \fI\fR دلخواه است\&. .sp اگر \fB\-\-merge\-base\fR مشخص شود، از پایه ادغام دو کامیت برای سمت «قبل» (before) استفاده می‌کند\&. \fBgit\fR \fBdiff\fR \fB\-\-merge\-base\fR \fBA\fR \fBB\fR معادل است با \fBgit\fR \fBdiff\fR \fB$\fR(\fBgit\fR \fBmerge\-base\fR \fBA\fR \fBB\fR) \fBB\fR\&. .RE .PP \fBgit\fR \fBdiff\fR [\fI\fR] \fI\fR \fI\fR\fB\&.\&.\&.\fR\fI\fR [\fB\-\-\fR] [\fI\fR\&.\&.\&.] .RS 4 این حالت برای مشاهده نتایج یک کامیت ادغام است\&. اولین \fI\fR فهرست‌شده باید خود ادغام باشد؛ دو یا چند کامیت باقیمانده باید والدین آن باشند\&. روش‌های مناسب برای تولید مجموعه بازبینی‌های مورد نظر، استفاده از پسوندهای \fB@\fR و \fB^\fR! است\&. اگر \fBA\fR یک کامیت ادغام باشد، در این صورت \fBgit\fR \fBdiff\fR \fBA\fR \fBA^@\fR، \fBgit\fR \fBdiff\fR \fBA^\fR! و \fBgit\fR \fBshow\fR \fBA\fR همگی diff ترکیبی یکسانی را ارائه می‌دهند\&. .RE .PP \fBgit\fR \fBdiff\fR [\fI\fR] \fI\fR\fB\&.\&.\fR\fI\fR [\fB\-\-\fR] [\fI\fR\&.\&.\&.] .RS 4 این حالت با حالت قبلی (بدون \&.\&.) برای مشاهده تغییرات میان دو \fI\fR دلخواه هم‌معنی است\&. اگر \fI\fR در یک طرف حذف شود، تاثیری مشابه با استفاده از \fBHEAD\fR به جای آن خواهد داشت\&. .RE .PP \fBgit\fR \fBdiff\fR [\fI\fR] \fI\fR\fB\&.\&.\&.\fR\fI\fR [\fB\-\-\fR] [\fI\fR\&.\&.\&.] .RS 4 این حالت برای مشاهده تغییرات در شاخه حاوی و منتهی به دومین \fI\fR، با شروع از نیاکان مشترک هر دو \fI\fR است\&. \fBgit\fR \fBdiff\fR \fBA\fR\fB\&.\&.\&.\fR\fBB\fR معادل است با \fBgit\fR \fBdiff\fR \fB$\fR(\fBgit\fR \fBmerge\-base\fR \fBA\fR \fBB\fR) \fBB\fR\&. می‌توانید هر کدام از \fI\fR را حذف کنید، که تاثیری مشابه با استفاده از \fBHEAD\fR به جای آن دارد\&. .RE .sp فقط در صورتی که کار خاصی انجام می‌دهید، باید اشاره کرد که تمام \fI\fR در توضیحات بالا، به جز در مورد \fB\-\-merge\-base\fR و در دو حالت آخر که از نمادهای \&.\&. استفاده می‌کنند، می‌توانند هر \fI\fR باشند\&. یک درخت قابل توجه، درختی است که ارجاعی با نام \fBAUTO_MERGE\fR به آن اشاره می‌کند و توسط راهبرد ادغام \fBort\fR هنگام برخورد با تداخل‌های ادغام نوشته می‌شود (ببینید \fBgit-merge\fR(1))\&. مقایسه درخت کاری با \fBAUTO_MERGE\fR تغییراتی را که تاکنون برای حل تداخل‌های متنی انجام داده‌اید نشان می‌دهد (مثال‌های زیر را ببینید)\&. .sp برای فهرست کامل‌تری از روش‌های نگارش \fI\fR، بخش «مشخص کردن بازبینی‌ها» (SPECIFYING REVISIONS) را در \fBgitrevisions\fR(7) ببینید\&. با این حال، \fBdiff\fR درباره مقایسه دو \fIنقطه پایانی\fR است و نه بازه‌ها، و نمادهای بازه (\fI\fR\fB\&.\&.\fR\fI\fR و \fI\fR\fB\&.\&.\&.\fR\fI\fR) به معنای یک بازه به آن مفهومی که در بخش «مشخص کردن بازه‌ها» (SPECIFYING RANGES) در \fBgitrevisions\fR(7) تعریف شده نیستند\&. .PP \fBgit\fR \fBdiff\fR [\fI\fR] \fI\fR \fI\fR .RS 4 این حالت برای مشاهده تفاوت‌های میان محتویات خام دو شیء blob است\&. .RE .SH "گزینه‌ها (OPTIONS)" .PP \fB\-p\fR, \fB\-u\fR, \fB\-\-patch\fR .RS 4 تولید پچ (ببینید بخش با عنوان \(lqتولید متن پچ با \-P (GENERATING PATCH TEXT WITH \-P)\(rq)\&. این حالت پیش‌فرض است\&. .RE .PP \fB\-s\fR, \fB\-\-no\-patch\fR .RS 4 فرونشاندن و جلوگیری از تمام خروجی‌های سازوکار diff\&. برای دستوراتی مانند \fBgit\fR \fBshow\fR که پچ را به صورت پیش‌فرض نمایش می‌دهند جهت خاموش کردن خروجی آنها، یا برای لغو اثر گزینه‌هایی مانند \fB\-\-patch\fR، \fB\-\-stat\fR که پیش‌تر در خط فرمان در یک نام مستعار (alias) آمده‌اند مفید است\&. .RE .PP \fB\-U\fR\fI\fR, \fB\-\-unified=\fR\fI\fR .RS 4 تولید diff با \fI\fR خط زمینه (context)\&. تعداد خطوط زمینه به صورت پیش‌فرض برابر با \fBdiff\&.context\fR یا در صورت تنظیم نشدن متغیر پیکربندی، برابر ۳ است\&. (\fB\-U\fR بدون \fI\fR به دلیل یک رخداد تاریخی به عنوان مترادفی برای \fB\-p\fR بدون نمایش خطا پذیرفته می‌شود)\&. مستلزم \fB\-\-patch\fR است\&. .RE .PP \fB\-\-output=\fR\fI\fR .RS 4 ارسال خروجی به یک فایل مشخص به جای خروجی استاندارد (stdout)\&. .RE .PP \fB\-\-output\-indicator\-new=\fR\fI\fR, \fB\-\-output\-indicator\-old=\fR\fI\fR, \fB\-\-output\-indicator\-context=\fR\fI\fR .RS 4 مشخص کردن نویسه‌ای که برای نشان دادن خطوط جدید، قدیمی یا زمینه در پچ تولیدشده استفاده می‌شود\&. این نویسه‌ها به طور معمول به ترتیب \fB+\fR، \fB\-\fR و \*(Aq \*(Aq هستند\&. .RE .PP \fB\-\-raw\fR .RS 4 تولید diff در قالب خام (raw)\&. .RE .PP \fB\-\-patch\-with\-raw\fR .RS 4 مترادفی برای \fB\-p\fR \fB\-\-raw\fR\&. .RE .PP \fB\-\-indent\-heuristic\fR .RS 4 فعال‌سازی روش اکتشافی (heuristic) که مرزهای تکه‌های diff را جابه‌جا می‌کند تا خواندن پچ‌ها آسان‌تر شود\&. این حالت پیش‌فرض است\&. .RE .PP \fB\-\-no\-indent\-heuristic\fR .RS 4 غیرفعال کردن روش اکتشافی تورفتگی (indent heuristic)\&. .RE .PP \fB\-\-minimal\fR .RS 4 صرف زمان اضافه برای اطمینان از تولید کوچک‌ترین diff ممکن\&. .RE .PP \fB\-\-patience\fR .RS 4 تولید diff با استفاده از الگوریتم «patience diff»\&. .RE .PP \fB\-\-histogram\fR .RS 4 تولید diff با استفاده از الگوریتم «histogram diff»\&. .RE .PP \fB\-\-anchored=\fR\fI\fR .RS 4 تولید diff با استفاده از الگوریتم «anchored diff»\&. .sp این گزینه ممکن است بیش از یک بار مشخص شود\&. .sp اگر خطی در هر دو مبدا و مقصد وجود داشته باشد، فقط یک بار تکرار شده باشد و با \fI\fR شروع شود، این الگوریتم تلاش می‌کند تا از نمایش آن به عنوان حذف یا افزودن در خروجی جلوگیری کند\&. این الگوریتم در درون خود از الگوریتم «patience diff» استفاده می‌کند\&. .RE .PP \fB\-\-diff\-algorithm=\fR(\fBpatience\fR|\fBminimal\fR|\fBhistogram\fR|\fBmyers\fR) .RS 4 انتخاب یک الگوریتم diff\&. انواع آن به شرح زیر است: .PP \fBdefault\fR, \fBmyers\fR .RS 4 الگوریتم پایه‌ای و حریصانه diff\&. در حال حاضر این گزینه پیش‌فرض است\&. .RE .PP \fBminimal\fR .RS 4 صرف زمان اضافه برای اطمینان از تولید کوچک‌ترین diff ممکن\&. .RE .PP \fBpatience\fR .RS 4 استفاده از الگوریتم «patience diff» هنگام تولید پچ‌ها\&. .RE .PP \fBhistogram\fR .RS 4 این الگوریتم، الگوریتم patience را برای «پشتیبانی از عناصر مشترک با تکرار کم» گسترش می‌دهد\&. .RE .sp به عنوان مثال، اگر متغیر \fBdiff\&.algorithm\fR را روی مقداری غیر از پیش‌فرض تنظیم کرده‌اید و می‌خواهید از مقدار پیش‌فرض استفاده کنید، باید از گزینه \fB\-\-diff\-algorithm=default\fR استفاده نمایید\&. .RE .PP \fB\-\-stat\fR[\fB=\fR\fI\fR[\fB,\fR\fI\fR[\fB,\fR\fI\fR]]] .RS 4 تولید یک diffstat\&. به طور پیش‌فرض، به اندازه مورد نیاز فضا برای بخش نام فایل استفاده می‌شود و باقیمانده برای بخش نمودار اختصاص می‌یابد\&. حداکثر عرض به طور پیش‌فرض برابر با عرض ترمینال، یا ۸۰ ستون در صورت عدم اتصال به ترمینال است و می‌تواند با \fI\fR بازنویسی شود\&. عرض بخش نام فایل را می‌توان با دادن عرض دیگری مانند \fI\fR پس از یک کاما یا با تنظیم \fBdiff\&.statNameWidth=\fR\fI\fR محدود کرد\&. عرض بخش نمودار را می‌توان با استفاده از \fB\-\-stat\-graph\-width=\fR\fI\fR یا با تنظیم \fBdiff\&.statGraphWidth=\fR\fI\fR محدود نمود\&. استفاده از \fB\-\-stat\fR یا \fB\-\-stat\-graph\-width\fR روی تمام دستوراتی که یک نمودار آماری (stat graph) تولید می‌کنند اثر می‌گذارد، در حالی که تنظیم \fBdiff\&.statNameWidth\fR یا \fBdiff\&.statGraphWidth\fR روی \fBgit\fR \fBformat\-patch\fR اثری ندارد\&. با دادن پارامتر سوم \fI\fR، می‌توانید خروجی را به اولین \fI\fR خط محدود کنید، که در صورت وجود خطوط بیشتر، با \&.\&.\&. دنبال می‌شود\&. .sp این پارامترها را می‌توان به طور جداگانه با \fB\-\-stat\-width=\fR\fI\fR، \fB\-\-stat\-name\-width=\fR\fI\fR و \fB\-\-stat\-count=\fR\fI\fR نیز تنظیم کرد\&. .RE .PP \fB\-\-compact\-summary\fR .RS 4 ارائه یک خلاصه فشرده از اطلاعات سرآیند گسترش‌یافته مانند ایجاد یا حذف فایل‌ها (‎"new"‎ یا ‎"gone"‎، و در صورت پیوند نمادین بودن به صورت اختیاری \fB+l\fR) و تغییرات حالت دسترسی (\fB+x\fR یا \fB\-x\fR به ترتیب برای افزودن یا حذف بیت اجرایی) در diffstat\&. این اطلاعات بین بخش نام فایل و بخش نمودار قرار می‌گیرند\&. مستلزم \fB\-\-stat\fR است\&. .RE .PP \fB\-\-numstat\fR .RS 4 مشابه \fB\-\-stat\fR، اما تعداد خطوط افزوده و حذف‌شده را در نماد ده‌دهی و نام مسیر را بدون اختصار نمایش می‌دهد تا برای پردازش ماشینی مناسب‌تر باشد\&. برای فایل‌های باینری، به جای نمایش \fB0\fR \fB0\fR، دو \fB\-\fR خروجی می‌دهد\&. .RE .PP \fB\-\-shortstat\fR .RS 4 فقط نمایش آخرین خط از قالب \fB\-\-stat\fR شامل تعداد کل فایل‌های تغییریافته، و همچنین تعداد خطوط افزوده و حذف‌شده\&. .RE .PP \fB\-X\fR [\fI\fR\fB,\fR\&.\&.\&.], \fB\-\-dirstat\fR[\fB=\fR\fI\fR\fB,\fR\&.\&.\&.] .RS 4 نمایش توزیع میزان نسبی تغییرات برای هر زیردایرکتوری\&. رفتار \fB\-\-dirstat\fR را می‌توان با ارسال فهرستی از پارامترهای جداشده با کاما سفارشی‌سازی کرد\&. مقادیر پیش‌فرض توسط متغیر پیکربندی \fBdiff\&.dirstat\fR کنترل می‌شوند (به \fBgit-config\fR(1) مراجعه کنید)\&. پارامترهای زیر در دسترس هستند: .PP \fBchanges\fR .RS 4 محاسبه اعداد dirstat با شمارش خطوطی که از مبدا حذف شده یا به مقصد اضافه شده‌اند\&. این حالت میزان جابه‌جایی‌های صرف کد درون یک فایل را نادیده می‌گیرد\&. به عبارت دیگر، بازآرایی خطوط در یک فایل به اندازه سایر تغییرات به حساب نمی‌آید\&. این رفتار پیش‌فرض در صورت عدم ارائه پارامتر است\&. .RE .PP \fBlines\fR .RS 4 محاسبه اعداد dirstat با انجام تحلیل معمول diff مبتنی بر خط، و جمع زدن تعداد خطوط حذف‌شده/افزوده‌شده\&. (برای فایل‌های باینری، به جای آن تکه‌های ۶۴ بایتی شمرده می‌شوند، زیرا فایل‌های باینری مفهوم طبیعی از خط ندارند)\&. این یک رفتار با هزینه پردازشی بیشتر برای \fB\-\-dirstat\fR نسبت به رفتار \fBchanges\fR است، اما خطوط بازآرایی‌شده درون یک فایل را نیز به اندازه سایر تغییرات به حساب می‌آورد\&. خروجی حاصل با آنچه از سایر گزینه‌های \fB\-\-*stat\fR دریافت می‌کنید سازگار و یکدست است\&. .RE .PP \fBfiles\fR .RS 4 محاسبه اعداد dirstat با شمارش تعداد فایل‌های تغییریافته\&. هر فایل تغییریافته در تحلیل dirstat به طور یکسان شمرده می‌شود\&. این از نظر محاسباتی کم‌هزینه‌ترین رفتار \fB\-\-dirstat\fR است، زیرا اصلاً نیازی به بررسی محتوای فایل‌ها ندارد\&. .RE .PP \fBcumulative\fR .RS 4 شمارش تغییرات در دایرکتوری فرزند برای دایرکتوری والد نیز\&. توجه داشته باشید که هنگام استفاده از \fBcumulative\fR، مجموع درصدهای گزارش‌شده ممکن است از ۱۰۰٪ فراتر رود\&. رفتار پیش‌فرض (غیرتجمعی) را می‌توان با پارامتر \fBnoncumulative\fR مشخص کرد\&. .RE .PP \fI\fR .RS 4 یک پارامتر عدد صحیح که درصد آستانه قطع (به طور پیش‌فرض ۳٪) را مشخص می‌کند\&. دایرکتوری‌هایی که سهم آن‌ها از تغییرات کمتر از این درصد باشد در خروجی نمایش داده نمی‌شوند\&. .RE .sp مثال: دستور زیر فایل‌های تغییریافته را شمارش می‌کند، در حالی که دایرکتوری‌هایی با سهم کمتر از ۱۰٪ از مجموع فایل‌های تغییریافته را نادیده گرفته و شمارش دایرکتوری‌های فرزند را در دایرکتوری‌های والد تجمیع می‌کند: \fB\-\-dirstat=files\fR,10,cumulative\&. .RE .PP \fB\-\-cumulative\fR .RS 4 مترادفی برای \fB\-\-dirstat=cumulative\fR\&. .RE .PP \fB\-\-dirstat\-by\-file\fR[\fB=\fR\fI\fR\fB,\fR\&.\&.\&.] .RS 4 مترادفی برای \fB\-\-dirstat=files\fR,\fI\fR\fB,\fR\&.\&.\&.\&. .RE .PP \fB\-\-summary\fR .RS 4 ارائه خلاصه‌ای فشرده از اطلاعات سرایند گسترش‌یافته مانند ایجاد فایل‌ها، تغییر نام‌ها و تغییرات حالت/مجوز دسترسی (mode)\&. .RE .PP \fB\-\-patch\-with\-stat\fR .RS 4 مترادفی برای \fB\-p\fR \fB\-\-stat\fR\&. .RE .PP \fB\-z\fR .RS 4 هنگامی که گزینه‌های \fB\-\-raw\fR، \fB\-\-numstat\fR، \fB\-\-name\-only\fR یا \fB\-\-name\-status\fR داده شده باشند، نام مسیرها را دستکاری نکرده و از نویسه‌های NUL به عنوان پایان‌دهنده فیلدهای خروجی استفاده می‌کند\&. .sp بدون این گزینه، نام مسیرهای دارای کاراکترهای «غیرمعمول» همان‌طور که برای متغیر پیکربندی \fBcore\&.quotePath\fR توضیح داده شده نقل‌قول (quote) می‌شوند (به \fBgit-config\fR(1) مراجعه کنید)\&. .RE .PP \fB\-\-name\-only\fR .RS 4 تنها نمایش نام هر فایل تغییریافته در درخت پس‌تصویر (post\-image)\&. نام فایل‌ها اغلب با UTF\-8 کدگذاری شده‌اند\&. برای اطلاعات بیشتر به توضیحات مربوط به کدگذاری در صفحه راهنمای \fBgit-log\fR(1) مراجعه کنید\&. .RE .PP \fB\-\-name\-status\fR .RS 4 تنها نمایش نام (یا نام‌ها) و وضعیت هر فایل تغییریافته\&. برای آگاهی از مفهوم حروف وضعیت، به توضیحات گزینه \fB\-\-diff\-filter\fR مراجعه کنید\&. درست مانند \fB\-\-name\-only\fR، نام فایل‌ها اغلب با UTF\-8 کدگذاری شده‌اند\&. .RE .PP \fB\-\-submodule\fR[\fB=\fR\fI\fR] .RS 4 مشخص کردن نحوه نمایش تفاوت‌ها در زیرماژول‌ها (submodules)\&. هنگام مشخص کردن \fB\-\-submodule=short\fR از قالب \fBshort\fR استفاده می‌شود\&. این قالب فقط نام کامیت‌ها را در ابتدا و انتهای بازه نشان می‌دهد\&. هنگامی که \fB\-\-submodule\fR یا \fB\-\-submodule=log\fR مشخص شود، از قالب \fBlog\fR استفاده می‌شود\&. این قالب مانند \fBgit-submodule\fR(1) \fBsummary\fR کامیت‌های موجود در بازه را فهرست می‌کند\&. هنگامی که \fB\-\-submodule=diff\fR مشخص شود، از قالب \fBdiff\fR استفاده می‌شود\&. این قالب یک diff درون‌خطی از تغییرات در محتویات زیرماژول میان بازه کامیت‌ها را نشان می‌دهد\&. در صورت عدم تنظیم گزینه پیکربندی، مقدار پیش‌فرض برابر با \fBdiff\&.submodule\fR یا قالب \fBshort\fR است\&. .RE .PP \fB\-\-color\fR[\fB=\fR\fI\fR] .RS 4 نمایش diff رنگی\&. گزینه \fB\-\-color\fR (یعنی بدون \fB=\fR\fI\fR) معادل \fB\-\-color=always\fR است\&. \fI\fR می‌تواند یکی از مقادیر \fBalways\fR، \fBnever\fR یا \fBauto\fR باشد\&. این مقدار را می‌توان با تنظیمات پیکربندی \fBcolor\&.ui\fR و \fBcolor\&.diff\fR تغییر داد\&. .RE .PP \fB\-\-no\-color\fR .RS 4 غیرفعال کردن نمایش رنگی diff\&. از این گزینه می‌توان برای لغو و بازنویسی تنظیمات پیکربندی استفاده کرد\&. این گزینه معادل \fB\-\-color=never\fR است\&. .RE .PP \fB\-\-color\-moved\fR[\fB=\fR\fI\fR] .RS 4 خطوط جابه‌جاشده کد به رنگ متفاوتی نمایش داده می‌شوند\&. این رفتار را می‌توان با تنظیم پیکربندی \fBdiff\&.colorMoved\fR تغییر داد\&. مقدار \fI\fR در صورت ارائه نشدن گزینه، به طور پیش‌فرض برابر با \fBno\fR و اگر گزینه بدون حالت مشخص شود، به طور پیش‌فرض برابر با \fBzebra\fR است\&. این حالت باید یکی از موارد زیر باشد: .PP \fBno\fR .RS 4 خطوط جابه‌جاشده برجسته (هایلایت) نمی‌شوند\&. .RE .PP \fBdefault\fR .RS 4 مترادفی برای \fBzebra\fR است\&. این مقدار ممکن است در آینده به یک حالت منطقی‌تر تغییر کند\&. .RE .PP \fBplain\fR .RS 4 هر خطی که در یک مکان اضافه شده و در مکان دیگری حذف شده باشد، با رنگ \fBcolor\&.diff\&.newMoved\fR رنگ‌آمیزی خواهد شد\&. به همین ترتیب \fBcolor\&.diff\&.oldMoved\fR برای خطوط حذف‌شده‌ای استفاده خواهد شد که در جای دیگری از diff اضافه شده‌اند\&. این حالت هر خط جابه‌جاشده‌ای را شناسایی می‌کند، اما در بازبینی کد برای تعیین اینکه آیا یک بلوک کد بدون تغییر ترتیب جابه‌جا شده است یا خیر چندان مفید نیست\&. .RE .PP \fBblocks\fR .RS 4 بلوک‌هایی از متن جابه‌جاشده که دست‌کم ۲۰ نویسه الفبایی\-عددی دارند به صورت حریصانه شناسایی می‌شوند\&. بلوک‌های شناسایی‌شده با استفاده از رنگ \fBcolor\&.diff\&.\fR(\fBold\fR|\fBnew\fR)\fBMoved\fR رنگ‌آمیزی می‌شوند\&. بلوک‌های مجاور از یکدیگر قابل تشخیص نیستند\&. .RE .PP \fBzebra\fR .RS 4 بلوک‌های متن جابه‌جاشده همانند حالت \fBblocks\fR شناسایی می‌شوند\&. بلوک‌ها با استفاده از رنگ \fBcolor\&.diff\&.\fR(\fBold\fR|\fBnew\fR)\fBMoved\fR یا \fBcolor\&.diff\&.\fR(\fBold\fR|\fBnew\fR)\fBMovedAlternative\fR رنگ‌آمیزی می‌شوند\&. تغییر میان این دو رنگ نشان می‌دهد که یک بلوک جدید شناسایی شده است\&. .RE .PP \fBdimmed\-zebra\fR .RS 4 مشابه حالت \fBzebra\fR، اما بخش‌های کم‌اهمیت‌تر کد جابه‌جاشده علاوه بر آن کم‌رنگ (dim) می‌شوند\&. خطوط مرزی میان دو بلوک مجاور مهم تلقی شده و بقیه بخش‌ها کم‌اهمیت در نظر گرفته می‌شوند\&. \fBdimmed_zebra\fR یک مترادف منسوخ‌شده برای آن است\&. .RE .RE .PP \fB\-\-no\-color\-moved\fR .RS 4 غیرفعال کردن تشخیص جابه‌جایی\&. از این گزینه می‌توان برای لغو و بازنویسی تنظیمات پیکربندی استفاده کرد\&. این گزینه معادل \fB\-\-color\-moved=no\fR است\&. .RE .PP \fB\-\-color\-moved\-ws=\fR\fI\fR\fB,\fR\&.\&.\&. .RS 4 این گزینه نحوه نادیده گرفتن فاصله‌های خالی را هنگام انجام تشخیص جابه‌جایی برای \fB\-\-color\-moved\fR پیکربندی می‌کند\&. این تنظیم می‌تواند توسط متغیر پیکربندی \fBdiff\&.colorMovedWS\fR تنظیم شود\&. این حالت‌ها را می‌توان به صورت فهرستی جداشده با کاما مشخص کرد: .PP \fBno\fR .RS 4 هنگام انجام تشخیص جابه‌جایی، فاصله‌های خالی نادیده گرفته نمی‌شوند\&. .RE .PP \fBignore\-space\-at\-eol\fR .RS 4 نادیده گرفتن تغییرات فاصله‌های خالی در انتهای خط (EOL)\&. .RE .PP \fBignore\-space\-change\fR .RS 4 نادیده گرفتن تغییرات در مقدار فاصله‌های خالی\&. این حالت فاصله‌های خالی انتهای خط را نادیده می‌گیرد و تمامی توالی‌های دیگر از یک یا چند نویسه فاصله خالی را معادل یکدیگر در نظر می‌گیرد\&. .RE .PP \fBignore\-all\-space\fR .RS 4 نادیده گرفتن فاصله‌های خالی هنگام مقایسه خطوط\&. این حالت تفاوت‌ها را حتی اگر یک خط دارای فاصله خالی باشد و خط دیگر فاقد آن باشد نادیده می‌گیرد\&. .RE .PP \fBallow\-indentation\-change\fR .RS 4 در ابتدا هرگونه فاصله خالی در تشخیص جابه‌جایی نادیده گرفته می‌شود، سپس بلوک‌های کد جابه‌جاشده تنها در صورتی در یک بلوک گروه‌بندی می‌شوند که تغییر در فاصله خالی به ازای هر خط یکسان باشد\&. این حالت با سایر حالت‌ها ناسازگار است\&. .RE .RE .PP \fB\-\-no\-color\-moved\-ws\fR .RS 4 هنگام انجام تشخیص جابه‌جایی، فاصله‌های خالی را نادیده نگیر\&. از این گزینه می‌توان برای لغو و بازنویسی تنظیمات پیکربندی استفاده کرد\&. این گزینه معادل \fB\-\-color\-moved\-ws=no\fR است\&. .RE .PP \fB\-\-word\-diff\fR[\fB=\fR\fI\fR] .RS 4 به طور پیش‌فرض، کلمات با فاصله‌های خالی از هم جدا می‌شوند؛ به \fB\-\-word\-diff\-regex\fR در زیر مراجعه کنید\&. مقدار \fI\fR به طور پیش‌فرض برابر با \fBplain\fR است و باید یکی از موارد زیر باشد: .PP \fBcolor\fR .RS 4 برجسته کردن کلمات تغییریافته تنها با استفاده از رنگ‌ها\&. این گزینه مستلزم \fB\-\-color\fR است\&. .RE .PP \fBplain\fR .RS 4 نمایش کلمات به صورت \fB[\-removed\-]\fR و \fB{\fBadded\fR}\fR\&. هیچ تلاشی برای اسکیپ کردن جداکننده‌ها در صورت ظاهر شدن آن‌ها در ورودی انجام نمی‌شود، بنابراین ممکن است خروجی مبهم باشد\&. .RE .PP \fBporcelain\fR .RS 4 استفاده از یک قالب مبتنی بر خط ویژه که برای مصرف و پردازش در اسکریپت‌ها در نظر گرفته شده است\&. توالی‌های افزوده‌شده/حذف‌شده/بدون‌تغییر در قالب معمول diff یکپارچه (unified diff) چاپ می‌شوند، که با یک نویسه \fB+\fR/\fB\-\fR/` ` در ابتدای خط شروع شده و تا انتهای خط ادامه می‌یابند\&. خطوط جدید (newlines) در ورودی با یک علامت تیلدا \fB~\fR در یک خط جداگانه نشان داده می‌شوند\&. .RE .PP \fBnone\fR .RS 4 غیرفعال کردن مجدد تفاوت کلمه‌ای (word diff)\&. .RE .sp توجه داشته باشید که با وجود نام حالت اول، در صورت فعال بودن، در تمامی حالت‌ها برای برجسته‌سازی بخش‌های تغییریافته از رنگ استفاده می‌شود\&. .sp گزینه \fB\-\-word\-diff\fR با گرفتن همان diff خط‌به‌خطی که بدون این گزینه تولید می‌شود و سپس محاسبه تغییرات کلمه‌به‌کلمه درون هر قطعه تغییر (hunk) عمل می‌کند\&. این ممکن است خروجی diff بزرگ‌تری نسبت به خروجی یک ابزار اختصاصی word\-diff تولید کند\&. اگر گیت در آینده پیاده‌سازی متفاوتی را به کار گیرد، خروجی ممکن است تغییر کند\&. توجه داشته باشید که این مشابه گزینه \fB\-\-diff\-algorithm\fR است که آن هم ممکن است خروجی را تغییر دهد\&. .RE .PP \fB\-\-word\-diff\-regex=\fR\fI\fR .RS 4 استفاده از \fI\fR برای تعیین اینکه چه چیزی کلمه محسوب می‌شود، به جای در نظر گرفتن توالی نویسه‌های غیرفاصله به عنوان کلمه\&. همچنین مستلزم \fB\-\-word\-diff\fR است مگر آنکه از قبل فعال شده باشد\&. .sp هر تطابق غیرهم‌پوشان با \fI\fR یک کلمه در نظر گرفته می‌شود\&. هر چیزی میان این تطابق‌ها فاصله خالی تلقی شده و به منظور یافتن تفاوت‌ها نادیده گرفته می‌شود(!)\&. ممکن است بخواهید |[\fB^\fR[\fB:space:\fR]] را به عبارت باقاعده خود الحاق کنید تا مطمئن شوید که با تمام نویسه‌های غیرفاصله تطابق دارد\&. تطابقی که شامل خط جدید (newline) باشد به طور خاموش(!) در محل خط جدید بریده می‌شود\&. .sp برای مثال، \fB\-\-word\-diff\-regex=\&.\fR با هر نویسه مانند یک کلمه رفتار کرده و بر این اساس، تفاوت‌ها را نویسه‌به‌نویسه نمایش می‌دهد\&. .sp عبارت باقاعده (regex) را می‌توان از طریق درایور diff یا گزینه پیکربندی نیز تنظیم کرد؛ به \fBgitattributes\fR(5) یا \fBgit-config\fR(1) مراجعه کنید\&. مشخص کردن صریح آن بر هر درایور diff یا تنظیم پیکربندی اولویت داشته و آن را لغو می‌کند\&. درایورهای diff بر تنظیمات پیکربندی اولویت دارند\&. .RE .PP \fB\-\-color\-words\fR[\fB=\fR\fI\fR] .RS 4 معادل \fB\-\-word\-diff=color\fR به همراه (در صورت مشخص شدن یک عبارت منظم) \fB\-\-word\-diff\-regex=\fR\fI\fR\&. .RE .PP \fB\-\-no\-renames\fR .RS 4 غیرفعال کردن تشخیص تغییر نام، حتی اگر در فایل پیکربندی به صورت پیش‌فرض فعال باشد\&. .RE .PP \fB\-\-rename\-empty\fR, \fB\-\-no\-rename\-empty\fR .RS 4 تعیین این‌که آیا از blobهای خالی به عنوان منبع تغییر نام استفاده شود یا خیر\&. .RE .PP \fB\-\-check\fR .RS 4 هشدار در صورتی که تغییرات باعث ایجاد نشانگرهای تداخل یا خطاهای فاصله خالی شوند\&. مواردی که خطای فاصله خالی محسوب می‌شوند توسط پیکربندی \fBcore\&.whitespace\fR کنترل می‌گردد\&. به طور پیش‌فرض، فاصله‌های خالی انتهایی (شامل خطوطی که صرفاً از فاصله خالی تشکیل شده‌اند) و یک نویسه فاصله که بلافاصله پس از آن یک نویسه تب در تورفتگی ابتدای خط آمده باشد، خطای فاصله خالی در نظر گرفته می‌شوند\&. در صورت یافتن مشکل با وضعیت غیرصفر خارج می‌شود\&. با \fB\-\-exit\-code\fR سازگار نیست\&. .RE .PP \fB\-\-ws\-error\-highlight=\fR\fI\fR .RS 4 برجسته‌سازی خطاهای فاصله خالی در خطوط \fBcontext\fR\fR،\fR \fBold\fR یا \fBnew\fR در diff\&. مقادیر چندگانه با کاما از هم جدا می‌شوند، \fBnone\fR مقادیر قبلی را بازنشانی می‌کند، \fBdefault\fR فهرست را به \fBnew\fR بازمی‌گرداند و \fBall\fR یک میانبر برای \fBold\fR,new,context است\&. هنگامی که این گزینه مشخص نشده باشد و متغیر پیکربندی \fBdiff\&.wsErrorHighlight\fR نیز تنظیم نشده باشد، فقط خطاهای فاصله خالی در خطوط \fBnew\fR برجسته می‌شوند\&. خطاهای فاصله خالی با رنگ \fBcolor\&.diff\&.whitespace\fR رنگ‌آمیزی می‌شوند\&. .RE .PP \fB\-\-full\-index\fR .RS 4 هنگام تولید خروجی با فرمت وصله (patch)، به جای نمایش چند نویسه اول، نام کامل اشیای blob مربوط به pre\-image و post\-image را در خط "index" نمایش می‌دهد\&. .RE .PP \fB\-\-binary\fR .RS 4 علاوه بر \fB\-\-full\-index\fR، یک diff باینری تولید می‌کند که می‌تواند با \fBgit\-apply\fR اعمال شود\&. متضمن \fB\-\-patch\fR است\&. .RE .PP \fB\-\-abbrev\fR[\fB=\fR\fI\fR] .RS 4 به جای نمایش نام کامل هگزادسیمال ۴۰ بایتی شیء در خروجی فرمت diff\-raw و خطوط هدر diff\-tree، کوتاه‌ترین پیشوندی را که حداقل به طول \fI\fR رقم هگزادسیمال باشد و به طور یکتا به شیء ارجاع دهد نمایش می‌دهد\&. در فرمت خروجی diff\-patch، گزینه \fB\-\-full\-index\fR اولویت بالاتری دارد؛ یعنی اگر \fB\-\-full\-index\fR مشخص شده باشد، نام کامل blob بدون در نظر گرفتن \fB\-\-abbrev\fR نمایش داده خواهد شد\&. تعداد ارقام غیرپیش‌فرض را می‌توان با \fB\-\-abbrev=\fR\fI\fR مشخص کرد\&. .RE .PP \fB\-B\fR[\fI\fR][\fB/\fR\fI\fR], \fB\-\-break\-rewrites\fR[\fB=\fR[\fI\fR][\fB/\fR\fI\fR]] .RS 4 شکستن تغییرات بازنویسی کامل به جفت‌های حذف و ایجاد\&. این کار دو هدف را دنبال می‌کند: .sp بر نحوه نمایش تغییری که معادل بازنویسی کامل یک فایل است تأثیر می‌گذارد؛ به طوری که آن را نه به عنوان مجموعه‌ای از حذف و درج‌های درهم‌آمیخته همراه با چند خط معدود که از نظر متنی به عنوان زمینه (context) مطابقت دارند، بلکه به عنوان یک حذف کامل از تمام محتوای قدیمی به دنبال یک درج کامل از تمام محتوای جدید نشان می‌دهد، و عدد \fI\fR این جنبه از گزینه \fB\-B\fR را کنترل می‌کند (به طور پیش‌فرض ۶۰٪)\&. \fB\-B/70%\fR مشخص می‌کند که کمتر از ۳۰٪ از فایل اصلی باید در نتیجه باقی بماند تا گیت آن را یک بازنویسی کامل در نظر بگیرد (یعنی در غیر این صورت وصله حاصل مجموعه‌ای از حذف و درج‌های درهم‌آمیخته همراه با خطوط زمینه خواهد بود)\&. .sp هنگامی که همراه با \fB\-M\fR استفاده شود، یک فایل بازنویسی‌شده کامل نیز به عنوان منبع یک تغییر نام در نظر گرفته می‌شود (معمولاً \fB\-M\fR تنها فایلی را که ناپدید شده به عنوان منبع تغییر نام در نظر می‌گیرد)، و عدد \fI\fR این جنبه از گزینه \fB\-B\fR را کنترل می‌کند (به طور پیش‌فرض ۵۰٪)\&. \fB\-B20%\fR مشخص می‌کند که تغییری با افزودن و حذف در مقایسه با ۲۰٪ یا بیشتر از اندازه فایل، واجد شرایط انتخاب به عنوان یک منبع احتمالی برای تغییر نام به فایلی دیگر است\&. .RE .PP \fB\-M\fR[\fI\fR], \fB\-\-find\-renames\fR[\fB=\fR\fI\fR] .RS 4 تشخیص تغییر نام‌ها\&. اگر \fI\fR مشخص شود، آستانه‌ای برای شاخص شباهت است (یعنی مقدار افزودن/حذف در مقایسه با اندازه فایل)\&. برای مثال، \fB\-M90%\fR بدین معنی است که گیت در صورتی باید یک جفت حذف/افزودن را تغییر نام در نظر بگیرد که بیش از ۹۰٪ فایل تغییر نکرده باشد\&. بدون علامت \fB%\fR، این عدد به عنوان یک کسر با یک ممیز اعشاری پیش از آن خوانده می‌شود؛ یعنی \fB\-M5\fR تبدیل به ۰٫۵ می‌شود و بنابراین همانند \fB\-M50%\fR است\&. به طور مشابه، \fB\-M05\fR همان \fB\-M5%\fR است\&. برای محدود کردن تشخیص به تغییر نام‌های دقیق، از \fB\-M100%\fR استفاده کنید\&. شاخص شباهت پیش‌فرض ۵۰٪ است\&. .RE .PP \fB\-C\fR[\fI\fR], \fB\-\-find\-copies\fR[\fB=\fR\fI\fR] .RS 4 تشخیص کپی‌ها و همچنین تغییر نام‌ها\&. همچنین ببینید \fB\-\-find\-copies\-harder\fR\&. اگر \fI\fR مشخص شود، همان معنایی را دارد که برای \fB\-M\fR\fI\fR دارد\&. .RE .PP \fB\-\-find\-copies\-harder\fR .RS 4 به دلایل کارایی و عملکرد، به طور پیش‌فرض گزینه \fB\-C\fR کپی‌ها را تنها در صورتی می‌یابد که فایل اصلیِ کپی در همان changeset تغییر یافته باشد\&. این فلگ باعث می‌شود دستور فایل‌های تغییرنیافته را نیز به عنوان نامزدهای منبع کپی بررسی کند\&. این یک عملیات بسیار پرهزینه برای پروژه‌های بزرگ است، بنابراین با احتیاط از آن استفاده کنید\&. دادن بیش از یک گزینه \fB\-C\fR همان اثر را دارد\&. .RE .PP \fB\-D\fR, \fB\-\-irreversible\-delete\fR .RS 4 حذف preimage برای موارد حذف‌شده، یعنی فقط هدر چاپ می‌شود و diff بین preimage و \fB/dev/null\fR چاپ نمی‌گردد\&. وصله حاصل قرار نیست با \fBpatch\fR یا \fBgit\fR \fBapply\fR اعمال شود؛ این صرفاً برای افرادی است که می‌خواهند فقط بر بازبینی متن پس از تغییر تمرکز کنند\&. علاوه بر این، خروجی به وضوح فاقد اطلاعات کافی برای اعمال معکوس چنین وصله‌ای (حتی به صورت دستی) است، از این رو این نام برای گزینه انتخاب شده است\&. .sp هنگامی که همراه با \fB\-B\fR استفاده شود، preimage در بخش حذف از یک جفت حذف/ایجاد را نیز نادیده می‌گیرد\&. .RE .PP \fB\-l\fR\fI\fR .RS 4 گزینه‌های \fB\-M\fR و \fB\-C\fR شامل برخی مراحل مقدماتی هستند که می‌توانند زیرمجموعه‌هایی از تغییر نام‌ها/کپی‌ها را با هزینه کم تشخیص دهند، و به دنبال آن یک بخش جامع جایگزین وجود دارد که تمام مقصدهای جفت‌نشده باقی‌مانده را با تمام منابع مرتبط مقایسه می‌کند\&. (برای تغییر نام‌ها، تنها منابع جفت‌نشده باقی‌مانده مرتبط هستند؛ برای کپی‌ها، تمام منابع اصلی مرتبط هستند)\&. برای N منبع و مقصد، این بررسی جامع از مرتبه O(N^2) است\&. این گزینه در صورتی که تعداد فایل‌های منبع/مقصد درگیر از تعداد مشخص‌شده فراتر رود، از اجرای بخش جامع تشخیص تغییر نام/کپی جلوگیری می‌کند\&. مقدار پیش‌فرض آن \fBdiff\&.renameLimit\fR است\&. توجه داشته باشید که مقدار 0 به عنوان نامحدود در نظر گرفته می‌شود\&. .RE .PP \fB\-\-diff\-filter=\fR[(\fBA\fR|\fBC\fR|\fBD\fR|\fBM\fR|\fBR\fR|\fBT\fR|\fBU\fR|\fBX\fR|\fBB\fR)\fB\&.\&.\&.\fR[\fB*\fR]] .RS 4 تنها فایل‌هایی را انتخاب می‌کند که افزوده‌شده (\fBA\fR)، کپی‌شده (\fBC\fR)، حذف‌شده (\fBD\fR)، تغییریافته (\fBM\fR)، تغییرنام‌یافته (\fBR\fR)، نوع آن‌ها (یعنی فایل معمولی، پیوند نمادین، زیرماژول و \&...) تغییر کرده (\fBT\fR)، ادغام‌نشده (\fBU\fR)، ناشناخته (\fBX\fR)، یا جفت‌شدگی آن‌ها شکسته شده باشد (\fBB\fR)\&. از هر ترکیبی از نویسه‌های فیلتر (شامل هیچ‌کدام) می‌توان استفاده کرد\&. هنگامی که \fB*\fR (همه یا هیچ) به ترکیب افزوده شود، در صورتی که فایلی وجود داشته باشد که با سایر معیارهای مقایسه مطابقت دارد، تمام مسیرها انتخاب می‌شوند؛ اگر فایلی وجود نداشته باشد که با سایر معیارها مطابقت کند، هیچ چیزی انتخاب نمی‌شود\&. .sp همچنین، این حروف بزرگ را می‌توان با حروف کوچک نوشت تا مستثنی شوند؛ به عنوان مثال \fB\-\-diff\-filter=ad\fR مسیرهای افزوده‌شده و حذف‌شده را مستثنی می‌کند\&. .sp توجه داشته باشید که همه diffها نمی‌توانند شامل همه انواع باشند\&. برای مثال، اگر تشخیص برای آن انواع غیرفعال باشد، موارد کپی‌شده و تغییرنام‌یافته نمی‌توانند ظاهر شوند\&. .RE .PP \fB\-S\fR\fI\fR .RS 4 به دنبال تفاوت‌هایی می‌گردد که تعداد رخدادهای \fI\fR مشخص‌شده را در یک فایل تغییر می‌دهند (یعنی افزودن/حذف)\&. برای استفاده اسکریپت‌نویسان در نظر گرفته شده است\&. .sp هنگامی که به دنبال یک بلوک دقیق از کد (مانند یک struct) هستید و می‌خواهید تاریخچه آن بلوک را از زمان پیدایش اولیه آن بدانید بسیار مفید است: از این قابلیت به صورت تکرارشونده استفاده کنید تا بلوک مورد نظر در preimage را مجدداً به \fB\-S\fR بدهید، و این کار را ادامه دهید تا به اولین نسخه آن بلوک برسید\&. .sp فایل‌های باینری نیز جستجو می‌شوند\&. .RE .PP \fB\-G\fR\fI\fR .RS 4 به دنبال تفاوت‌هایی می‌گردد که متن وصله آن‌ها شامل خطوط افزوده‌شده/حذف‌شده‌ای باشد که با \fI\fR مطابقت دارند\&. .sp برای نشان دادن تفاوت بین \fB\-S\fR\fI\fR \fB\-\-pickaxe\-regex\fR و \fB\-G\fR\fI\fR، کامیتی با diff زیر در همان فایل را در نظر بگیرید: .sp .if n \{\ .RS 4 .\} .nf + return frotz(nitfol, two\->ptr, 1, 0); \&.\&.\&. \- hit = frotz(nitfol, mf2\&.ptr, 1, 0); .fi .if n \{\ .RE .\} .sp در حالی که \fBgit\fR \fBlog\fR \fB\-G\fR"frotz\e(\fBnitfol\fR" این کامیت را نمایش می‌دهد، \fBgit\fR \fBlog\fR \fB\-S\fR"frotz\e(\fBnitfol\fR" \fB\-\-pickaxe\-regex\fR آن را نمایش نخواهد داد (زیرا تعداد رخدادهای آن رشته تغییر نکرده است)\&. .sp مگر اینکه \fB\-\-text\fR ارائه شده باشد، وصله‌های مربوط به فایل‌های باینری بدون فیلتر textconv نادیده گرفته خواهند شد\&. .sp برای اطلاعات بیشتر، مدخل \fIpickaxe\fR را در \fBgitdiffcore\fR(7) ببینید\&. .RE .PP \fB\-\-find\-object=\fR\fI\fR .RS 4 به دنبال تفاوت‌هایی می‌گردد که تعداد رخدادهای شیء مشخص‌شده را تغییر می‌دهند\&. شبیه به \fB\-S\fR است، تنها تفاوت در آرگومان است که به جای یک رشته خاص به دنبال شناسه یک شیء خاص می‌گردد\&. .sp شیء می‌تواند یک blob یا کامیتِ زیرماژول باشد\&. این گزینه متضمن گزینه \fB\-t\fR در \fBgit\-log\fR برای یافتن درخت‌ها (trees) نیز هست\&. .RE .PP \fB\-\-pickaxe\-all\fR .RS 4 هنگامی که \fB\-S\fR یا \fB\-G\fR تغییری را می‌یابد، تمام تغییرات موجود در آن changeset را نشان می‌دهد، نه فقط فایل‌هایی که حاوی تغییر در \fI\fR هستند\&. .RE .PP \fB\-\-pickaxe\-regex\fR .RS 4 با \fI\fR داده‌شده به \fB\-S\fR به عنوان یک عبارت منظم توسعه‌یافته POSIX برای تطبیق رفتار می‌کند\&. .RE .PP \fB\-O\fR\fI\fR .RS 4 ترتیب نمایش فایل‌ها در خروجی را کنترل می‌کند\&. این گزینه متغیر پیکربندی \fBdiff\&.orderFile\fR را بازنویسی (override) می‌کند (به \fBgit-config\fR(1) مراجعه کنید)\&. برای لغو \fBdiff\&.orderFile\fR، از \fB\-O/dev/null\fR استفاده کنید\&. .sp ترتیب خروجی توسط ترتیب الگوهای glob در \fI\fR تعیین می‌شود\&. تمام فایل‌هایی که نام مسیر آن‌ها با الگوی اول مطابقت دارد ابتدا در خروجی قرار می‌گیرند، تمام فایل‌هایی که نام مسیر آن‌ها با الگوی دوم (اما نه الگوی اول) مطابقت دارد در مرحله بعد خروجی داده می‌شوند، و به همین ترتیب\&. تمام فایل‌هایی که نام مسیر آن‌ها با هیچ الگویی مطابقت ندارد در انتها قرار می‌گیرند، گویی یک الگوی ضمنی تطبیق با همه چیز در انتهای فایل وجود دارد\&. اگر چندین نام مسیر دارای رتبه یکسان باشند (با همان الگو مطابقت داشته باشند اما با هیچ الگوی قبلی مطابقت نداشته باشند)، ترتیب خروجی آن‌ها نسبت به یکدیگر همان ترتیب عادی خواهد بود\&. .sp \fI\fR به صورت زیر تجزیه می‌شود: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} خطوط خالی نادیده گرفته می‌شوند، بنابراین می‌توان از آن‌ها به عنوان جداکننده جهت خوانایی استفاده کرد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} خطوطی که با علامت هش ("#") شروع می‌شوند نادیده گرفته می‌شوند، بنابراین می‌توان از آن‌ها برای توضیحات (کامنت) استفاده کرد\&. اگر الگو با هش شروع می‌شود، یک بک‌اسلش ("\fB\e\fR") به ابتدای آن اضافه کنید\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} هر خط دیگر شامل یک الگوی واحد است\&. .RE .sp الگوها همان نحو و معنای الگوهای استفاده‌شده برای \fBfnmatch\fR(3) بدون فلگ \fBFNM_PATHNAME\fR را دارند، با این تفاوت که اگر با حذف هر تعداد از مؤلفه‌های انتهایی نام مسیر، تطابق با الگو برقرار شود، آن نام مسیر نیز با الگو مطابقت خواهد داشت\&. برای مثال، الگوی "\fBfoo*bar\fR" با "\fBfooasdfbar\fR" و "\fBfoo/bar/baz/asdf\fR" مطابقت دارد اما با "\fBfoobarx\fR" مطابقت ندارد\&. .RE .PP \fB\-\-skip\-to=\fR\fI\fR, \fB\-\-rotate\-to=\fR\fI\fR .RS 4 فایل‌های قبل از \fI\fR نام‌برده‌شده را از خروجی کنار می‌گذارد (یعنی \fIskip to\fR)، یا آن‌ها را به انتهای خروجی منتقل می‌کند (یعنی \fIrotate to\fR)\&. این گزینه‌ها اساساً برای استفاده دستور \fBgit\fR \fBdifftool\fR ابداع شده‌اند و در غیر این صورت ممکن است چندان مفید نباشند\&. .RE .PP \fB\-R\fR .RS 4 دو ورودی را جابه‌جا (swap) می‌کند؛ یعنی تفاوت‌ها را از index یا فایل روی دیسک نسبت به محتویات درخت نمایش می‌دهد\&. .RE .PP \fB\-\-relative\fR[\fB=\fR\fI\fR], \fB\-\-no\-relative\fR .RS 4 هنگامی که از یک زیردایرکتوریِ پروژه اجرا می‌شود، با این گزینه می‌توان تعیین کرد تا تغییرات خارج از آن دایرکتوری نادیده گرفته شده و نام مسیرها به صورت نسبی با آن نمایش داده شوند\&. هنگامی که در یک زیردایرکتوری نیستید (برای مثال در یک مخزن bare)، می‌توانید با دادن یک \fI\fR به عنوان آرگومان، مشخص کنید که خروجی نسبت به کدام زیردایرکتوری نسبی شود\&. \fB\-\-no\-relative\fR می‌تواند برای لغو اثر هر دو گزینه پیکربندی \fBdiff\&.relative\fR و \fB\-\-relative\fR قبلی استفاده شود\&. .RE .PP \fB\-a\fR, \fB\-\-text\fR .RS 4 تمام فایل‌ها را به عنوان متنی در نظر بگیر\&. .RE .PP \fB\-\-ignore\-cr\-at\-eol\fR .RS 4 هنگام مقایسه، کاراکتر بازگشت به ابتدای سطر (carriage\-return) در انتهای خط را نادیده بگیر\&. .RE .PP \fB\-\-ignore\-space\-at\-eol\fR .RS 4 تغییرات در فاصله‌های خالی در انتهای خط (EOL) را نادیده بگیر\&. .RE .PP \fB\-b\fR, \fB\-\-ignore\-space\-change\fR .RS 4 تغییرات در مقدار فاصله‌های خالی را نادیده بگیر\&. این گزینه فاصله‌های خالی در انتهای خط را نادیده می‌گیرد و تمام توالی‌های دیگر از یک یا چند نویسه فاصله خالی را معادل یکدیگر در نظر می‌گیرد\&. .RE .PP \fB\-w\fR, \fB\-\-ignore\-all\-space\fR .RS 4 هنگام مقایسه خطوط، فاصله‌های خالی را نادیده بگیر\&. این گزینه تفاوت‌ها را حتی اگر در یک خط فاصله خالی وجود داشته باشد و در خط دیگر هیچ فاصله‌ای نباشد نادیده می‌گیرد\&. .RE .PP \fB\-\-ignore\-blank\-lines\fR .RS 4 تغییراتی را که تمام خطوط آن‌ها خالی هستند نادیده بگیر\&. .RE .PP \fB\-I\fR\fI\fR, \fB\-\-ignore\-matching\-lines=\fR\fI\fR .RS 4 تغییراتی را که تمام خطوط آن‌ها با \fI\fR مطابقت دارد نادیده بگیر\&. این گزینه می‌تواند بیش از یک بار مشخص شود\&. .RE .PP \fB\-\-inter\-hunk\-context=\fR\fI\fR .RS 4 زمینه (context) میان قطعات (hunks) diff را تا تعداد خطوط مشخص‌شده در \fI\fR نمایش بده و بدین ترتیب قطعاتی را که به یکدیگر نزدیک هستند ادغام کن\&. مقدار پیش‌فرض آن \fBdiff\&.interHunkContext\fR یا در صورت عدم تنظیم این گزینه پیکربندی، 0 است\&. .RE .PP \fB\-W\fR, \fB\-\-function\-context\fR .RS 4 تمام تابع را به عنوان خطوط زمینه (context) برای هر تغییر نمایش بده\&. نام توابع به همان روشی تعیین می‌شود که \fBgit\fR \fBdiff\fR هدرهای قطعات وصله را استخراج می‌کند (به بخش "تعریف سرآیند قطعه سفارشی (Defining a custom hunk\-header)" در \fBgitattributes\fR(5) مراجعه کنید)\&. .RE .PP \fB\-\-exit\-code\fR .RS 4 کاری می‌کند که برنامه با کدهای خروجی مشابه با \fBdiff\fR(1) خارج شود\&. به این صورت که در صورت وجود تفاوت با کد 1 خارج می‌شود و کد 0 به معنای عدم وجود تفاوت است\&. .RE .PP \fB\-\-quiet\fR .RS 4 تمام خروجی‌های برنامه را غیرفعال کن\&. این گزینه به طور ضمنی شامل \fB\-\-exit\-code\fR نیز هست\&. اجرای دستیارهای diff خارجی را که به کد خروجی آن‌ها اعتمادی نیست، یعنی گزینه پیکربندی مربوط به آن‌ها \fBdiff\&.trustExitCode\fR یا \fBdiff\&.\fR\fI\fR\fB\&.trustExitCode\fR یا متغیر محیطی \fBGIT_EXTERNAL_DIFF_TRUST_EXIT_CODE\fR بر روی false تنظیم شده باشد، غیرفعال می‌کند\&. .RE .PP \fB\-\-ext\-diff\fR .RS 4 اجازه اجرای یک دستیار diff خارجی را بده\&. اگر یک درایور diff خارجی را با \fBgitattributes\fR(5) تنظیم کرده باشید، باید از این گزینه همراه با \fBgit-log\fR(1) و دستورات مشابه استفاده کنید\&. .RE .PP \fB\-\-no\-ext\-diff\fR .RS 4 اجرای درایورهای diff خارجی را غیرمجاز کن\&. .RE .PP \fB\-\-textconv\fR, \fB\-\-no\-textconv\fR .RS 4 هنگام مقایسه فایل‌های باینری، اجرای فیلترهای تبدیل متن خارجی را مجاز (یا غیرمجاز) کن\&. برای جزئیات به \fBgitattributes\fR(5) مراجعه کنید\&. از آنجا که فیلترهای textconv معمولاً یک تبدیل یک‌طرفه هستند، diff حاصل برای انسان خوانا و مناسب است، اما قابل اعمال (apply) نیست\&. به همین دلیل، فیلترهای textconv به طور پیش‌فرض فقط برای \fBgit-diff\fR(1) و \fBgit-log\fR(1) فعال هستند، اما برای \fBgit-format-patch\fR(1) یا دستورات ساختاری (plumbing) مربوط به diff فعال نیستند\&. .RE .PP \fB\-\-ignore\-submodules\fR[\fB=\fR(\fBnone\fR|\fBuntracked\fR|\fBdirty\fR|\fBall\fR)] .RS 4 تغییرات مربوط به زیرماژول‌ها را در تولید diff نادیده بگیر\&. مقدار \fBall\fR پیش‌فرض است\&. استفاده از \fBnone\fR هنگامی که زیرماژول حاوی فایل‌های ردیابی‌نشده یا تغییریافته باشد یا مقدار \fBHEAD\fR آن با کامیت ثبت‌شده در پروژه اصلی (superproject) تفاوت داشته باشد، آن زیرماژول را به عنوان تغییریافته (modified) در نظر می‌گیرد و می‌تواند برای بازنویسی هرگونه تنظیمات گزینه \fBignore\fR در \fBgit-config\fR(1) یا \fBgitmodules\fR(5) استفاده شود\&. هنگامی که از \fBuntracked\fR استفاده می‌شود، زیرماژول‌ها در صورتی که فقط حاوی محتوای ردیابی‌نشده باشند تغییریافته (dirty) در نظر گرفته نمی‌شوند (اما همچنان برای محتوای تغییریافته بررسی می‌شوند)\&. استفاده از \fBdirty\fR تمام تغییرات درخت کاری زیرماژول‌ها را نادیده می‌گیرد و فقط تغییرات مربوط به کامیت‌های ذخیره‌شده در پروژه اصلی نمایش داده می‌شوند (این رفتار تا نسخه 1\&.7\&.0 بود)\&. استفاده از \fBall\fR تمام تغییرات زیرماژول‌ها را پنهان می‌کند\&. .RE .PP \fB\-\-src\-prefix=\fR\fI\fR .RS 4 پیشوند منبعِ داده‌شده \fI\fR را به جای "a/" نمایش بده\&. .RE .PP \fB\-\-dst\-prefix=\fR\fI\fR .RS 4 پیشوند مقصدِ داده‌شده \fI\fR را به جای "b/" نمایش بده\&. .RE .PP \fB\-\-no\-prefix\fR .RS 4 هیچ پیشوندی برای منبع یا مقصد نمایش نده\&. .RE .PP \fB\-\-default\-prefix\fR .RS 4 از پیشوندهای پیش‌فرض منبع و مقصد ("a/" و "b/") استفاده کن\&. این گزینه متغیرهای پیکربندی مانند \fBdiff\&.noprefix\fR, \fBdiff\&.srcPrefix\fR, \fBdiff\&.dstPrefix\fR و \fBdiff\&.mnemonicPrefix\fR را بازنویسی می‌کند (به \fBgit-config\fR(1) مراجعه کنید)\&. .RE .PP \fB\-\-line\-prefix=\fR\fI\fR .RS 4 یک پیشوند اضافی \fI\fR را به ابتدای هر خط از خروجی اضافه کن\&. .RE .PP \fB\-\-ita\-invisible\-in\-index\fR .RS 4 به طور پیش‌فرض ورودی‌های اضافه‌شده با \fBgit\fR \fBadd\fR \fB\-N\fR به عنوان یک فایل خالیِ موجود در \fBgit\fR \fBdiff\fR و یک فایل جدید در \fBgit\fR \fBdiff\fR \fB\-\-cached\fR ظاهر می‌شوند\&. این گزینه باعث می‌شود که ورودی به عنوان یک فایل جدید در \fBgit\fR \fBdiff\fR و ناموجود در \fBgit\fR \fBdiff\fR \fB\-\-cached\fR نمایش داده شود\&. این گزینه را می‌توان با \fB\-\-ita\-visible\-in\-index\fR به حالت قبل بازگرداند\&. هر دو گزینه آزمایشی هستند و ممکن است در آینده حذف شوند\&. .RE .PP \-\-max\-depth= .RS 4 برای هر الگوی مسیر (pathspec) مشخص‌شده در خط فرمان، حداکثر تا \fI\fR سطح از دایرکتوری‌ها به پایین پیمایش کن\&. مقدار \fB\-1\fR به معنای بدون محدودیت است\&. نمی‌توان آن را با نویسه‌های عام (wildcards) در pathspec ترکیب کرد\&. با فرض یک درخت حاوی \fBfoo/bar/baz\fR، فهرست زیر تطابق‌های تولیدشده توسط هر مجموعه از گزینه‌ها را نشان می‌دهد: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fB\-\-max\-depth=0\fR \fB\-\-\fR \fBfoo\fR: \fBfoo\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fB\-\-max\-depth=1\fR \fB\-\-\fR \fBfoo\fR: \fBfoo/bar\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fB\-\-max\-depth=1\fR \fB\-\-\fR \fBfoo/bar\fR: \fBfoo/bar/baz\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fB\-\-max\-depth=1\fR \fB\-\-\fR \fBfoo\fR \fBfoo/bar\fR: \fBfoo/bar/baz\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fB\-\-max\-depth=2\fR \fB\-\-\fR \fBfoo\fR: \fBfoo/bar/baz\fR .RE .sp اگر هیچ الگوی مسیری (pathspec) مشخص نشود، عمق به گونه‌ای اندازه‌گیری می‌شود که گویی تمام ورودی‌های سطح بالا مشخص شده‌اند\&. توجه داشته باشید که این با اندازه‌گیری از ریشه متفاوت است، زیرا \fB\-\-max\-depth=0\fR همچنان \fBfoo\fR را برمی‌گرداند\&. این به شما امکان می‌دهد تا ضمن درخواست زیرمجموعه‌ای از ورودی‌های سطح بالا، عمق را نیز محدود کنید\&. .sp توجه داشته باشید که این گزینه تنها برای diff میان شیءهای درختی (tree objects) پشتیبانی می‌شود، نه در برابر ایندکس یا درخت کاری\&. .RE .sp برای توضیحات دقیق‌تر درباره این گزینه‌های رایج، همچنین به \fBgitdiffcore\fR(7) مراجعه کنید\&. .PP \fB\-1\fR, \fB\-\-base\fR, \fB\-2\fR, \fB\-\-ours\fR, \fB\-3\fR, \fB\-\-theirs\fR .RS 4 مقایسه درخت کاری با .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} نسخه "پایه" (stage #1) هنگام استفاده از \fB\-1\fR یا \fB\-\-base\fR، .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} "شاخه ما" (stage #2) هنگام استفاده از \fB\-2\fR یا \fB\-\-ours\fR، یا .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} "شاخه آن‌ها" (stage #3) هنگام استفاده از \fB\-3\fR یا \fB\-\-theirs\fR\&. .RE .sp ایندکس این مراحل (stages) را تنها برای ورودی‌های ادغام‌نشده (unmerged)، یعنی در حین حل تعارض‌ها، نگهداری می‌کند\&. برای اطلاعات دقیق‌تر به بخش "3\-Way Merge" در \fBgit-read-tree\fR(1) مراجعه کنید\&. .RE .PP \fB\-0\fR .RS 4 خروجی diff را برای ورودی‌های ادغام‌نشده حذف کرده و فقط "Unmerged" را نمایش بده\&. تنها زمانی که درخت کاری با ایندکس مقایسه می‌شود قابل استفاده است\&. .RE .PP \fI\fR\&.\&.\&. .RS 4 پارامترهای \fI\fR، در صورت مشخص شدن، برای محدود کردن diff به مسیرهای نام‌برده استفاده می‌شوند (می‌توانید نام دایرکتوری‌ها را بدهید و diff را برای تمام فایل‌های زیرمجموعه آن‌ها دریافت کنید)\&. .RE .SH "قالب خروجی خام (RAW OUTPUT FORMAT)" .sp قالب خروجی خام در \fBgit\-diff\-index\fR، \fBgit\-diff\-tree\fR، \fBgit\-diff\-files\fR و \fBgit\fR \fBdiff\fR \fB\-\-raw\fR بسیار مشابه یکدیگر است\&. .sp این دستورات همگی دو مجموعه از موارد را با یکدیگر مقایسه می‌کنند؛ اما آنچه مقایسه می‌شود متفاوت است: .PP \fBgit\-diff\-index\fR \fI\fR .RS 4 \fI\fR و فایل‌های موجود در فایل‌سیستم را مقایسه می‌کند\&. .RE .PP \fBgit\-diff\-index\fR \fB\-\-cached\fR \fI\fR .RS 4 \fI\fR و ایندکس را مقایسه می‌کند\&. .RE .PP \fBgit\-diff\-tree\fR [\fB\-r\fR] \fI\fR \fI\fR [\fI\fR\&.\&.\&.] .RS 4 درخت‌های مشخص‌شده توسط دو آرگومان را مقایسه می‌کند\&. .RE .PP \fBgit\-diff\-files\fR [\fI\fR\&.\&.\&.] .RS 4 ایندکس و فایل‌های موجود در فایل‌سیستم را مقایسه می‌کند\&. .RE .sp تمام این دستورات به ازای هر فایل تغییریافته یک خط خروجی چاپ می‌کنند، به جز \fBgit\fR \fBdiff\-files\fR در مورد فایل‌های ادغام‌نشده (unmerged) که هر دو خط \(lqunmerged\(rq و \(lqin\-place edit\(rq را چاپ می‌کند\&. .sp یک خط خروجی به این صورت قالب‌بندی می‌شود: .sp .if n \{\ .RS 4 .\} .nf in\-place edit :100644 100644 bcd1234 0123456 M file0 copy\-edit :100644 100644 abcd123 1234567 C68 file1 file2 rename\-edit :100644 100644 abcd123 1234567 R86 file1 file3 create :000000 100644 0000000 1234567 A file4 delete :100644 000000 1234567 0000000 D file5 unmerged :000000 000000 0000000 0000000 U file6 .fi .if n \{\ .RE .\} .sp .sp بدین صورت که از چپ به راست: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} یک علامت دو‌نقطه (colon)\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} حالت (mode) برای \(lqsrc\(rq؛ مقدار 000000 در صورت ایجاد فایل، یا اگر \(lqsrc\(rq از ایندکس آمده باشد و ادغام‌نشده باشد\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} یک فاصله (space)\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} حالت (mode) برای \(lqdst\(rq؛ مقدار 000000 در صورت حذف فایل، یا اگر \(lqdst\(rq از ایندکس آمده باشد و ادغام‌نشده باشد\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 5.\h'+01'\c .\} .el \{\ .sp -1 .IP " 5." 4.2 .\} یک فاصله (space)\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 6.\h'+01'\c .\} .el \{\ .sp -1 .IP " 6." 4.2 .\} شناسه sha1 برای \(lqsrc\(rq؛ مقدار 0{40} در صورت ایجاد فایل، یا اگر \(lqsrc\(rq از ایندکس آمده باشد و ادغام‌نشده باشد\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 7.\h'+01'\c .\} .el \{\ .sp -1 .IP " 7." 4.2 .\} یک فاصله (space)\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 8.\h'+01'\c .\} .el \{\ .sp -1 .IP " 8." 4.2 .\} شناسه sha1 برای \(lqdst\(rq؛ مقدار 0{40} در صورت حذف فایل، اگر \(lqdst\(rq از ایندکس آمده باشد و ادغام‌نشده باشد، یا اگر \(lqdst\(rq از درخت کاری بوده و با ایندکس ناهماهنگ باشد\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 9.\h'+01'\c .\} .el \{\ .sp -1 .IP " 9." 4.2 .\} یک فاصله (space)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'10.\h'+01'\c .\} .el \{\ .sp -1 .IP "10." 4.2 .\} وضعیت (status)، به همراه یک عدد اختیاری \(lqامتیاز\(rq (score)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'11.\h'+01'\c .\} .el \{\ .sp -1 .IP "11." 4.2 .\} یک کاراکتر tab یا NUL در صورتی که از گزینه \fB\-z\fR استفاده شده باشد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'12.\h'+01'\c .\} .el \{\ .sp -1 .IP "12." 4.2 .\} مسیر برای \(lqsrc\(rq .RE .sp .RS 4 .ie n \{\ \h'-04'13.\h'+01'\c .\} .el \{\ .sp -1 .IP "13." 4.2 .\} یک کاراکتر tab یا NUL در صورتی که از گزینه \fB\-z\fR استفاده شده باشد؛ فقط برای C یا R وجود دارد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'14.\h'+01'\c .\} .el \{\ .sp -1 .IP "14." 4.2 .\} مسیر برای \(lqdst\(rq؛ فقط برای C یا R وجود دارد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'15.\h'+01'\c .\} .el \{\ .sp -1 .IP "15." 4.2 .\} یک کاراکتر LF یا NUL در صورتی که از گزینه \fB\-z\fR برای پایان دادن به رکورد استفاده شده باشد\&. .RE .sp حروف وضعیت ممکن عبارتند از: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBA\fR: افزودن یک فایل .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBC\fR: رونوشت (کپی) از یک فایل در فایلی جدید .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBD\fR: حذف یک فایل .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBM\fR: تغییر در محتوا یا حالت (mode) یک فایل .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBR\fR: تغییر نام یک فایل .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBT\fR: تغییر در نوع فایل (فایل معمولی، پیوند نمادین یا زیرماژول) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBU\fR: فایل ادغام‌نشده است (پیش از ثبت/کامیت کردن، باید ادغام را تکمیل کنید) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBX\fR: نوع تغییر \(lqناشناخته\(rq است (به احتمال زیاد یک باگ است، لطفاً آن را گزارش دهید) .RE .sp حروف وضعیت \fBC\fR و \fBR\fR همیشه با یک امتیاز همراه هستند (که نشان‌دهنده درصد شباهت میان مبدا و مقصد جابجایی یا رونوشت است)\&. حرف وضعیت \fBM\fR ممکن است برای بازنویسی‌های فایل با یک امتیاز (که نشان‌دهنده درصد عدم شباهت است) همراه باشد\&. .sp اگر فایلی در فایل‌سیستم با ایندکس ناهماهنگ باشد، شناسه sha1 برای \(lqdst\(rq تماماً به‌صورت 0 نمایش داده می‌شود\&. .sp مثال: .sp .if n \{\ .RS 4 .\} .nf :100644 100644 5be4a4a 0000000 M file\&.c .fi .if n \{\ .RE .\} .sp .sp بدون گزینه \fB\-z\fR، نام مسیرهایی که دارای نویسه‌های \(lqغیرمعمول\(rq هستند همان‌طور که برای متغیر پیکربندی \fBcore\&.quotePath\fR توضیح داده شده است، نقل‌قول (quote) می‌شوند (نگاه کنید به \fBgit-config\fR(1))\&. با استفاده از \fB\-z\fR، نام فایل عیناً در خروجی قرار می‌گیرد و خط با یک بایت NUL پایان می‌یابد\&. .SH "قالب تفاضل برای ادغام‌ها (DIFF FORMAT FOR MERGES)" .sp دستورات \fBgit\-diff\-tree\fR، \fBgit\-diff\-files\fR و \fBgit\-diff\fR \fB\-\-raw\fR می‌توانند گزینه \fB\-c\fR یا \fB\-\-cc\fR را برای تولید خروجی تفاضل (diff) برای کامیت‌های ادغام (merge commits) نیز دریافت کنند\&. خروجی به روش‌های زیر با قالب توصیف‌شده در بالا تفاوت دارد: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} برای هر والد (parent) یک دو نقطه (:) وجود دارد .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} حالت‌های "src" و sha1های "src" بیشتری وجود دارند .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} وضعیت به‌صورت کاراکترهای وضعیت متصل‌شده (الحاق‌شده) برای هر والد است .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} هیچ عدد اختیاری "امتیاز" (score) وجود ندارد .RE .sp .RS 4 .ie n \{\ \h'-04' 5.\h'+01'\c .\} .el \{\ .sp -1 .IP " 5." 4.2 .\} نام مسیر(های) فایل که با کاراکتر تب جدا شده‌اند .RE .sp برای \fB\-c\fR و \fB\-\-cc\fR، تنها مسیر مقصد یا نهایی نشان داده می‌شود، حتی اگر نام فایل در هر طرف از تاریخچه تغییر کرده باشد (تغییر نام داده شده باشد)\&. با \fB\-\-combined\-all\-paths\fR، نام مسیر در هر والد و به دنبال آن نام مسیر در کامیت ادغام نمایش داده می‌شود\&. .sp مثال‌هایی برای \fB\-c\fR و \fB\-\-cc\fR بدون \fB\-\-combined\-all\-paths\fR: .sp .if n \{\ .RS 4 .\} .nf ::100644 100644 100644 fabadb8 cc95eb0 4866510 MM desc\&.c ::100755 100755 100755 52b7a2d 6d1ac04 d2ac7d7 RM bar\&.sh ::100644 100644 100644 e07d6c5 9042e82 ee91881 RR phooey\&.c .fi .if n \{\ .RE .\} .sp .sp مثال‌ها زمانی که \fB\-\-combined\-all\-paths\fR به \fB\-c\fR یا \fB\-\-cc\fR اضافه شده باشد: .sp .if n \{\ .RS 4 .\} .nf ::100644 100644 100644 fabadb8 cc95eb0 4866510 MM desc\&.c desc\&.c desc\&.c ::100755 100755 100755 52b7a2d 6d1ac04 d2ac7d7 RM foo\&.sh bar\&.sh bar\&.sh ::100644 100644 100644 e07d6c5 9042e82 ee91881 RR fooey\&.c fuey\&.c phooey\&.c .fi .if n \{\ .RE .\} .sp .sp توجه داشته باشید که \fIcombined diff\fR (تفاضل ترکیبی) فقط فایل‌هایی را فهرست می‌کند که نسبت به همه والدین اصلاح شده باشند\&. .SH "تولید متن وصله با P\- (GENERATING PATCH TEXT WITH \-P)" .sp اجرای \fBgit-diff\fR(1)، \fBgit-log\fR(1)، \fBgit-show\fR(1)، \fBgit-diff-index\fR(1)، \fBgit-diff-tree\fR(1) یا \fBgit-diff-files\fR(1) همراه با گزینه \fB\-p\fR متن وصله تولید می‌کند\&. شما می‌توانید ایجاد متن وصله را از طریق متغیرهای محیطی \fBGIT_EXTERNAL_DIFF\fR و \fBGIT_DIFF_OPTS\fR (ببینید \fBgit\fR(1)) و مشخصه \fBdiff\fR (ببینید \fBgitattributes\fR(5)) سفارشی‌سازی کنید\&. .sp آنچه گزینه \fB\-p\fR تولید می‌کند کمی با قالب تفاضل سنتی متفاوت است: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} پیش از آن یک هدر "git diff" قرار دارد که شبیه به این است: .sp .if n \{\ .RS 4 .\} .nf diff \-\-git a/file1 b/file2 .fi .if n \{\ .RE .\} .sp نام فایل‌های \fBa/\fR و \fBb/\fR یکسان هستند مگر آنکه تغییر نام/رونوشت در میان باشد\&. به‌ویژه، حتی برای ایجاد یا حذف فایل، \fB/dev/null\fR به جای نام فایل‌های \fBa/\fR یا \fBb/\fR استفاده \fIنمی‌شود\fR\&. .sp هنگامی که تغییر نام/رونوشت رخ داده باشد، \fBfile1\fR و \fBfile2\fR به ترتیب نام فایل مبدا تغییر نام/رونوشت و نام فایلی که تغییر نام/رونوشت تولید می‌کند را نشان می‌دهند\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} پس از آن یک یا چند خط هدر گسترش‌یافته می‌آید: .sp .if n \{\ .RS 4 .\} .nf \fBold\fR \fBmode\fR \fI\fR \fBnew\fR \fBmode\fR \fI\fR \fBdeleted\fR \fBfile\fR \fBmode\fR \fI\fR \fBnew\fR \fBfile\fR \fBmode\fR \fI\fR \fBcopy\fR \fBfrom\fR \fI\fR \fBcopy\fR \fBto\fR \fI\fR \fBrename\fR \fBfrom\fR \fI\fR \fBrename\fR \fBto\fR \fI\fR \fBsimilarity\fR \fBindex\fR \fI\fR \fBdissimilarity\fR \fBindex\fR \fI\fR \fBindex\fR \fI\fR\fB\&.\&.\fR\fI\fR \fI\fR .fi .if n \{\ .RE .\} .sp حالت‌های فایل \fI\fR به‌صورت اعداد اکتال ۶ رقمی شامل نوع فایل و بیت‌های مجوز دسترسی فایل چاپ می‌شوند\&. .sp نام‌های مسیر در هدرهای گسترش‌یافته شامل پیشوندهای \fBa/\fR و \fBb/\fR نمی‌شوند\&. .sp شاخص شباهت (similarity index) درصد خطوط تغییرنیافته است و شاخص عدم شباهت (dissimilarity index) درصد خطوط تغییریافته است\&. این مقدار یک عدد صحیح گردشده به پایین است که به دنبال آن یک علامت درصد می‌آید\&. بنابراین مقدار شاخص شباهت ۱۰۰٪ برای دو فایل یکسان اختصاص دارد، در حالی که ۱۰۰٪ عدم شباهت بدان معناست که هیچ خطی از فایل قدیمی به فایل جدید منتقل نشده است\&. .sp خط index شامل نام اشیاء blob پیش و پس از تغییر است\&. در صورتی که حالت فایل تغییر نکند، \fI\fR گنجانده می‌شود؛ در غیر این صورت، خطوط جداگانه حالت‌های قدیمی و جدید را مشخص می‌کنند\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} نام مسیرهایی که دارای کاراکترهای «غیرمعمول» هستند، همان‌گونه که برای متغیر پیکربندی \fBcore\&.quotePath\fR توضیح داده شده است نقل‌قول می‌شوند (ببینید \fBgit-config\fR(1))\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} همه فایل‌های \fBfile1\fR در خروجی به فایل‌های قبل از کامیت اشاره دارند، و همه فایل‌های \fBfile2\fR به فایل‌های پس از کامیت اشاره دارند\&. اعمال متوالی هر تغییر بر روی هر فایل نادرست است\&. برای نمونه، این وصله a و b را با هم جابه‌جا می‌کند: .sp .if n \{\ .RS 4 .\} .nf diff \-\-git a/a b/b rename from a rename to b diff \-\-git a/b b/a rename from b rename to a .fi .if n \{\ .RE .\} .RE .sp .RS 4 .ie n \{\ \h'-04' 5.\h'+01'\c .\} .el \{\ .sp -1 .IP " 5." 4.2 .\} هدرهای قطعه (Hunk headers) نام تابعی را که قطعه بر آن اعمال می‌شود ذکر می‌کنند\&. برای جزئیات مربوط به نحوه تطبیق این مورد با زبان‌های خاص، بخش "Defining a custom hunk\-header" را در \fBgitattributes\fR(5) ببینید\&. .RE .SH "قالب تفاضل ترکیبی (COMBINED DIFF FORMAT)" .sp هر دستوری که خروجی تفاضل (diff) تولید می‌کند، می‌تواند گزینه \fB\-c\fR یا \fB\-\-cc\fR را برای تولید یک \fIتفاضل ترکیبی (combined diff)\fR هنگام نمایش ادغام (merge) دریافت کند\&. این قالب پیش‌فرض هنگام نمایش ادغام‌ها با \fBgit-diff\fR(1) یا \fBgit-show\fR(1) است\&. همچنین توجه داشته باشید که می‌توانید گزینه مناسب \fB\-\-diff\-merges\fR را به هر یک از این دستورات بدهید تا تولید تفاضل را در یک قالب مشخص اجباری کنید\&. .sp قالب «تفاضل ترکیبی» شبیه به این است: .sp .if n \{\ .RS 4 .\} .nf diff \-\-combined describe\&.c index fabadb8,cc95eb0\&.\&.4866510 \-\-\- a/describe\&.c +++ b/describe\&.c @@@ \-98,20 \-98,12 +98,20 @@@ return (a_date > b_date) ? \-1 : (a_date == b_date) ? 0 : 1; } \- static void describe(char *arg) \-static void describe(struct commit *cmit, int last_one) ++static void describe(char *arg, int last_one) { + unsigned char sha1[20]; + struct commit *cmit; struct commit_list *list; static int initialized = 0; struct commit_name *n; + if (get_sha1(arg, sha1) < 0) + usage(describe_usage); + cmit = lookup_commit_reference(sha1); + if (!cmit) + usage(describe_usage); + if (!initialized) { initialized = 1; for_each_ref(get_name); .fi .if n \{\ .RE .\} .sp .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} در ابتدا با یک هدر "git diff" شروع می‌شود که شبیه به این است (زمانی که گزینه \fB\-c\fR استفاده شده باشد): .sp .if n \{\ .RS 4 .\} .nf diff \-\-combined file .fi .if n \{\ .RE .\} .sp یا شبیه به این (زمانی که گزینه \fB\-\-cc\fR استفاده شده باشد): .sp .if n \{\ .RS 4 .\} .nf diff \-\-cc file .fi .if n \{\ .RE .\} .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} سپس با یک یا چند خط هدر گسترش‌یافته دنبال می‌شود (این مثال یک ادغام با دو والد را نشان می‌دهد): .sp .if n \{\ .RS 4 .\} .nf \fBindex\fR \fI\fR\fB,\fR\fI\fR\fB\&.\&.\fR\fI\fR \fBmode\fR \fI\fR\fB,\fR\fI\fR\fB\&.\&.\fR\fI\fR \fBnew\fR \fBfile\fR \fBmode\fR \fI\fR \fBdeleted\fR \fBfile\fR \fBmode\fR \fI\fR\fB,\fR\fI\fR .fi .if n \{\ .RE .\} .sp خط \fBmode\fR \fI\fR\fB,\fR\fI\fR\fB\&.\&.\fR\fI\fR تنها در صورتی ظاهر می‌شود که حداقل یکی از ها با بقیه متفاوت باشد\&. هدرهای گسترش‌یافته شامل اطلاعاتی درباره جابجایی محتوای شناسایی‌شده (تشخیص تغییر نام و رونوشت) طوری طراحی شده‌اند که با تفاضل دو \fI\fR کار کنند و توسط قالب تفاضل ترکیبی استفاده نمی‌شوند\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} سپس با یک هدر دوخطی from\-file/to\-file دنبال می‌شود: .sp .if n \{\ .RS 4 .\} .nf \-\-\- a/file +++ b/file .fi .if n \{\ .RE .\} .sp مشابه هدر دوخطی برای قالب سنتی تفاضل \fIیکپارچه (unified)\fR، از \fB/dev/null\fR برای نشان دادن فایل‌های ایجادشده یا حذف‌شده استفاده می‌شود\&. .sp با این حال، اگر گزینه \-\-combined\-all\-paths مشخص شده باشد، به جای یک هدر دوخطی from\-file/to\-file، یک هدر N+1 خطی from\-file/to\-file دریافت می‌کنید که در آن N تعداد والدین در کامیت ادغام است: .sp .if n \{\ .RS 4 .\} .nf \-\-\- a/file \-\-\- a/file \-\-\- a/file +++ b/file .fi .if n \{\ .RE .\} .sp این قالب گسترش‌یافته در صورتی که تشخیص تغییر نام یا رونوشت فعال باشد می‌تواند مفید باشد، تا به شما امکان دهد نام اصلی فایل را در والدین مختلف مشاهده کنید\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} قالب هدر تکه (chunk) اصلاح شده است تا از ارسال تصادفی آن به \fBpatch\fR \fB\-p1\fR جلوگیری شود\&. قالب تفاضل ترکیبی برای بازبینی تغییرات کامیت ادغام ایجاد شده است و قرار نبوده اعمال (apply) شود\&. این تغییر شبیه به تغییر در هدر گسترش‌یافته \fIindex\fR است: .sp .if n \{\ .RS 4 .\} .nf @@@ @@@ .fi .if n \{\ .RE .\} .sp تعداد (تعداد والدین + ۱) نویسه \fB@\fR در هدر تکه (chunk) برای قالب تفاضل ترکیبی وجود دارد\&. .RE .sp برخلاف قالب سنتی تفاضل \fIیکپارچه (unified)\fR، که دو فایل A و B را با یک ستون منفرد نشان می‌دهد که دارای پیشوند \fB\-\fR (منها \(em در A ظاهر شده اما در B حذف شده)، \fB+\fR (به‌علاوه \(em در A وجود ندارد اما به B افزوده شده) یا " " (فاصله \(em بدون تغییر) است، این قالب دو یا چند فایل file1، file2،\&... را با یک فایل X مقایسه می‌کند و نشان می‌دهد که X چگونه از هر یک از fileN متفاوت است\&. یک ستون به ازای هر یک از fileN به ابتدای خط خروجی اضافه می‌شود تا مشخص کند خط مربوط به X چگونه با آن تفاوت دارد\&. .sp نویسه \fB\-\fR در ستون N به این معنی است که خط در fileN وجود دارد اما در نتیجه نهایی ظاهر نمی‌شود\&. نویسه \fB+\fR در ستون N به این معنی است که خط در نتیجه نهایی ظاهر می‌شود، و fileN آن خط را ندارد (به عبارت دیگر، خط از دیدگاه آن والد اضافه شده است)\&. .sp در خروجی نمونه بالا، امضای تابع در هر دو فایل تغییر کرده بود (بنابراین دو حذف \fB\-\fR از هر دو file1 و file2، به همراه \fB++\fR به این معنی که یک خطِ اضافه‌شده در هیچ‌یک از file1 یا file2 وجود ندارد)\&. همچنین، هشت خط دیگر از file1 یکسان هستند اما در file2 وجود ندارند (بنابراین با پیشوند \fB+\fR مشخص شده‌اند)\&. .sp هنگامی که توسط \fBgit\fR \fBdiff\-tree\fR \fB\-c\fR نمایش داده می‌شود، والدین یک کامیت ادغام را با نتیجه ادغام مقایسه می‌کند (یعنی file1\&.\&.fileN والدین هستند)\&. هنگامی که توسط \fBgit\fR \fBdiff\-files\fR \fB\-c\fR نمایش داده می‌شود، دو والد ادغام حل‌نشده را با فایل درخت کاری مقایسه می‌کند (یعنی file1 استیج ۲ با عنوان «نسخه ما» و file2 استیج ۳ با عنوان «نسخه آن‌ها» است)\&. .SH "سایر قالب‌های تفاضل (OTHER DIFF FORMATS)" .sp گزینه \fB\-\-summary\fR فایل‌های تازه اضافه‌شده، حذف‌شده، تغییرنام‌یافته و رونوشت‌شده را توصیف می‌کند\&. گزینه \fB\-\-stat\fR نمودار \fBdiffstat\fR(1) را به خروجی اضافه می‌کند\&. این گزینه‌ها می‌توانند با سایر گزینه‌ها، مانند \fB\-p\fR ترکیب شوند و برای خواندن توسط انسان طراحی شده‌اند\&. .sp هنگام نمایش تغییری که شامل تغییر نام یا رونوشت است، خروجی \fB\-\-stat\fR با ترکیب پیشوند و پسوند مشترک نام مسیرها، آن‌ها را به شکلی فشرده قالب‌بندی می‌کند\&. برای مثال، تغییری که \fBarch/i386/Makefile\fR را به \fBarch/x86/Makefile\fR منتقل کرده و هم‌زمان ۴ خط را تغییر می‌دهد، به این صورت نمایش داده خواهد شد: .sp .if n \{\ .RS 4 .\} .nf arch/{i386 => x86}/Makefile | 4 +\-\- .fi .if n \{\ .RE .\} .sp .sp گزینه \fB\-\-numstat\fR اطلاعات diffstat(1) را ارائه می‌دهد اما برای پردازش و خواندن آسان‌تر توسط ماشین طراحی شده است\&. یک ورودی در خروجی \fB\-\-numstat\fR شبیه به این است: .sp .if n \{\ .RS 4 .\} .nf 1 2 README 3 1 arch/{i386 => x86}/Makefile .fi .if n \{\ .RE .\} .sp .sp یعنی از چپ به راست: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} تعداد خطوط اضافه‌شده؛ .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} یک نویسه تب (tab)؛ .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} تعداد خطوط حذف‌شده؛ .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} یک نویسه تب (tab)؛ .RE .sp .RS 4 .ie n \{\ \h'-04' 5.\h'+01'\c .\} .el \{\ .sp -1 .IP " 5." 4.2 .\} نام مسیر (احتمالاً همراه با اطلاعات تغییر نام/رونوشت)؛ .RE .sp .RS 4 .ie n \{\ \h'-04' 6.\h'+01'\c .\} .el \{\ .sp -1 .IP " 6." 4.2 .\} یک خط جدید (newline)\&. .RE .sp هنگامی که گزینه خروجی \fB\-z\fR فعال باشد، خروجی به این صورت قالب‌بندی می‌شود: .sp .if n \{\ .RS 4 .\} .nf 1 2 README NUL 3 1 NUL arch/i386/Makefile NUL arch/x86/Makefile NUL .fi .if n \{\ .RE .\} .sp .sp یعنی: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} تعداد خطوط اضافه‌شده؛ .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} یک نویسه تب (tab)؛ .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} تعداد خطوط حذف‌شده؛ .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} یک نویسه تب (tab)؛ .RE .sp .RS 4 .ie n \{\ \h'-04' 5.\h'+01'\c .\} .el \{\ .sp -1 .IP " 5." 4.2 .\} یک نویسه NUL (تنها در صورت تغییر نام/رونوشت وجود دارد)؛ .RE .sp .RS 4 .ie n \{\ \h'-04' 6.\h'+01'\c .\} .el \{\ .sp -1 .IP " 6." 4.2 .\} نام مسیر در پیش‌تصویر (preimage)؛ .RE .sp .RS 4 .ie n \{\ \h'-04' 7.\h'+01'\c .\} .el \{\ .sp -1 .IP " 7." 4.2 .\} یک نویسه NUL (تنها در صورت تغییر نام/رونوشت وجود دارد)؛ .RE .sp .RS 4 .ie n \{\ \h'-04' 8.\h'+01'\c .\} .el \{\ .sp -1 .IP " 8." 4.2 .\} نام مسیر در پس‌تصویر (postimage) (تنها در صورت تغییر نام/رونوشت وجود دارد)؛ .RE .sp .RS 4 .ie n \{\ \h'-04' 9.\h'+01'\c .\} .el \{\ .sp -1 .IP " 9." 4.2 .\} یک نویسه NUL\&. .RE .sp نویسه اضافی \fBNUL\fR قبل از مسیر پیش‌تصویر در حالت تغییر نام، به اسکریپت‌هایی که خروجی را می‌خوانند اجازه می‌دهد بدون خواندن رو به جلو تشخیص دهند که رکورد فعلی که خوانده می‌شود یک رکورد تک‌مسیره است یا یک رکورد تغییر نام/رونوشت\&. پس از خواندن خطوط اضافه‌شده و حذف‌شده، خواندن تا \fBNUL\fR نام مسیر را به دست می‌دهد، اما اگر آن مقدار \fBNUL\fR باشد، رکورد دو مسیر را نشان خواهد داد\&. .SH "مثال‌ها (EXAMPLES)" .PP روش‌های گوناگون برای بررسی درخت کاری .RS 4 .sp .if n \{\ .RS 4 .\} .nf $ git diff \fB(1)\fR $ git diff \-\-cached \fB(2)\fR $ git diff HEAD \fB(3)\fR $ git diff AUTO_MERGE \fB(4)\fR .fi .if n \{\ .RE .\} .sp .TS tab(:); r lw(\n(.lu*75u/100u). \fB1.\fR\h'-2n':T{ تغییرات در درخت کاری که هنوز برای کامیت بعدی استیج نشده‌اند\&. T} \fB2.\fR\h'-2n':T{ تغییرات میان ایندکس و آخرین کامیت شما؛ آنچه در صورت اجرای \fBgit\fR \fBcommit\fR بدون گزینه \fB\-a\fR کامیت خواهید کرد\&. T} \fB3.\fR\h'-2n':T{ تغییرات در درخت کاری از زمان آخرین کامیت شما؛ آنچه در صورت اجرای \fBgit\fR \fBcommit\fR \fB\-a\fR کامیت خواهید کرد\&. T} \fB4.\fR\h'-2n':T{ تغییراتی در درخت کاری که تاکنون برای حل تعارض‌های متنی اعمال کرده‌اید\&. T} .TE .RE .PP مقایسه با کامیت‌های دلخواه .RS 4 .sp .if n \{\ .RS 4 .\} .nf $ git diff test \fB(1)\fR $ git diff HEAD \-\- \&./test \fB(2)\fR $ git diff HEAD^ HEAD \fB(3)\fR .fi .if n \{\ .RE .\} .sp .TS tab(:); r lw(\n(.lu*75u/100u). \fB1.\fR\h'-2n':T{ به‌جای استفاده از نوک شاخه فعلی، مقایسه با نوک شاخه «test» انجام می‌شود\&. T} \fB2.\fR\h'-2n':T{ به‌جای مقایسه با نوک شاخه «test»، با نوک شاخه فعلی مقایسه می‌کند، اما مقایسه را به فایل «test» محدود می‌سازد\&. T} \fB3.\fR\h'-2n':T{ مقایسه نسخه پیش از آخرین کامیت و خود آخرین کامیت\&. T} .TE .RE .PP مقایسه شاخه‌ها .RS 4 .sp .if n \{\ .RS 4 .\} .nf $ git diff topic master \fB(1)\fR $ git diff topic\&.\&.master \fB(2)\fR $ git diff topic\&.\&.\&.master \fB(3)\fR .fi .if n \{\ .RE .\} .sp .TS tab(:); r lw(\n(.lu*75u/100u). \fB1.\fR\h'-2n':T{ تغییرات میان نوک شاخه‌های topic و master\&. T} \fB2.\fR\h'-2n':T{ مشابه مورد بالا\&. T} \fB3.\fR\h'-2n':T{ تغییراتی که روی شاخه master از زمان انشعاب شاخه topic از آن رخ داده است\&. T} .TE .RE .PP محدود کردن خروجی diff .RS 4 .sp .if n \{\ .RS 4 .\} .nf $ git diff \-\-diff\-filter=MRC \fB(1)\fR $ git diff \-\-name\-status \fB(2)\fR $ git diff arch/i386 include/asm\-i386 \fB(3)\fR .fi .if n \{\ .RE .\} .sp .TS tab(:); r lw(\n(.lu*75u/100u). \fB1.\fR\h'-2n':T{ تنها نمایش تغییرات، تغییر نام و رونوشت (کپی)، بدون نمایش موارد افزوده‌شده یا حذف‌شده\&. T} \fB2.\fR\h'-2n':T{ تنها نمایش نام‌ها و ماهیت تغییرات، بدون نمایش خروجی واقعی diff\&. T} \fB3.\fR\h'-2n':T{ محدود کردن خروجی diff به زیردرخت‌های نام‌برده\&. T} .TE .RE .PP دستکاری خروجی diff .RS 4 .sp .if n \{\ .RS 4 .\} .nf $ git diff \-\-find\-copies\-harder \-B \-C \fB(1)\fR $ git diff \-R \fB(2)\fR .fi .if n \{\ .RE .\} .sp .TS tab(:); r lw(\n(.lu*75u/100u). \fB1.\fR\h'-2n':T{ صرف چرخه‌های پردازشی بیشتر برای یافتن تغییر نام‌ها، رونوشت‌ها (کپی‌ها) و بازنویسی‌های کامل (بسیار پرهزینه)\&. T} \fB2.\fR\h'-2n':T{ تولید خروجی diff به‌صورت معکوس\&. T} .TE .RE .SH "پیکربندی (CONFIGURATION)" .sp تمام موارد زیر در این بخش به‌صورت گزینش‌شده از مستندات \fBgit-config\fR(1) گنجانده شده‌اند\&. محتوای آن‌ها با آنچه در آنجا یافت می‌شود یکسان است: .PP \fBdiff\&.autoRefreshIndex\fR .RS 4 هنگام استفاده از \fBgit\fR \fBdiff\fR برای مقایسه با فایل‌های درخت کاری، تغییراتی را که فقط مربوط به وضعیت فایل (stat) هستند به‌عنوان تغییریافته در نظر نگیرید\&. در عوض، بدون اعلام پیام، دستور \fBgit\fR \fBupdate\-index\fR \fB\-\-refresh\fR را اجرا کنید تا اطلاعات stat ذخیره‌شده در حافظه نهان برای مسیرهایی که محتوای آن‌ها در درخت کاری با محتوای ایندکس همخوانی دارد به‌روزرسانی شود\&. این گزینه به‌طور پیش‌فرض روی \fBtrue\fR تنظیم است\&. توجه داشته باشید که این موضوع تنها بر دستور سطح بالای (Porcelain) \fBgit\fR \fBdiff\fR تأثیر می‌گذارد و بر دستورات سطح پایین‌تر \fBdiff\fR مانند \fBgit\fR \fBdiff\-files\fR بی‌تأثیر است\&. .RE .PP \fBdiff\&.dirstat\fR .RS 4 فهرستی جداشده با کاما از پارامترهای \fB\-\-dirstat\fR که رفتار پیش‌فرض گزینه \fB\-\-dirstat\fR را برای دستور \fBgit\fR \fBdiff\fR و ابزارهای مرتبط مشخص می‌کند\&. مقادیر پیش‌فرض را می‌توان در خط فرمان (با استفاده از \fB\-\-dirstat=\fR\fI\fR\fB,\fR\&.\&.\&) بازنویسی کرد\&. مقادیر پیش‌فرض جایگزین (هنگامی که توسط \fBdiff\&.dirstat\fR تغییر نیافته باشند) برابر \fBchanges\fR,noncumulative,3 هستند\&. پارامترهای زیر در دسترس می‌باشند: .PP \fBchanges\fR .RS 4 محاسبه ارقام dirstat با شمارش خطوطی که از مبدا حذف یا به مقصد افزوده شده‌اند\&. این حالت میزان جابه‌جایی‌های محض کد را در یک فایل نادیده می‌گیرد\&. به بیانی دیگر، جابه‌جایی و بازآرایی خطوط در یک فایل به اندازه سایر تغییرات به حساب نمی‌آید\&. این رفتار در صورت مشخص نشدن پارامتر، رفتار پیش‌فرض است\&. .RE .PP \fBlines\fR .RS 4 محاسبه ارقام dirstat با انجام تحلیل منظم diff مبتنی بر خط، و جمع زدن شمارش خطوط حذف‌شده/افزوده‌شده\&. (برای فایل‌های باینری، قطعات ۶۴ بایتی شمارش می‌شوند، زیرا فایل‌های باینری مفهوم طبیعی خط ندارند)\&. این رفتار \fB\-\-dirstat\fR از رفتار \fBchanges\fR پرهزینه‌تر است، اما خطوط بازآرایی‌شده در یک فایل را به اندازه سایر تغییرات به حساب می‌آورد\&. خروجی حاصل با آنچه از سایر گزینه‌های \fB\-\-*stat\fR دریافت می‌کنید همخوانی دارد\&. .RE .PP \fBfiles\fR .RS 4 محاسبه ارقام dirstat با شمارش تعداد فایل‌های تغییریافته\&. هر فایل تغییریافته در تحلیل dirstat وزن یکسانی دارد\&. این رفتار از لحاظ بار محاسباتی کم‌هزینه‌ترین رفتار \fB\-\-dirstat\fR است، چرا که اصلاً نیازی به بررسی محتوای فایل‌ها ندارد\&. .RE .PP \fBcumulative\fR .RS 4 شمارش تغییرات یک دایرکتوری فرزند را برای دایرکتوری والد نیز محاسبه می‌کند\&. توجه داشته باشید که هنگام استفاده از \fBcumulative\fR، مجموع درصدهای گزارش‌شده ممکن است از ۱۰۰٪ فراتر رود\&. رفتار پیش‌فرض (غیرتجمعی) را می‌توان با پارامتر \fBnoncumulative\fR مشخص کرد\&. .RE .PP \fI\fR .RS 4 یک پارامتر عدد صحیح که درصد آستانه قطع (به‌طور پیش‌فرض ۳٪) را مشخص می‌سازد\&. دایرکتوری‌هایی که کمتر از این درصد در تغییرات سهم دارند در خروجی نشان داده نمی‌شوند\&. .RE .sp مثال: دستور زیر فایل‌های تغییریافته را شمارش می‌کند، در حالی که دایرکتوری‌های دارای کمتر از ۱۰٪ از کل فایل‌های تغییریافته را نادیده می‌گیرد و شمارش دایرکتوری‌های فرزند را در دایرکتوری‌های والد تجمیع می‌نماید: \fBfiles\fR,10,cumulative\&. .RE .PP \fBdiff\&.statNameWidth\fR .RS 4 محدود کردن عرض بخش نام فایل در خروجی \fB\-\-stat\fR\&. در صورت تنظیم، بر تمام دستوراتی که خروجی \fB\-\-stat\fR تولید می‌کنند به‌جز \fBformat\-patch\fR اعمال می‌شود\&. .RE .PP \fBdiff\&.statGraphWidth\fR .RS 4 محدود کردن عرض بخش نمودار میله‌ای در خروجی \fB\-\-stat\fR\&. در صورت تنظیم، بر تمام دستوراتی که خروجی \fB\-\-stat\fR تولید می‌کنند به‌جز \fBformat\-patch\fR اعمال می‌شود\&. .RE .PP \fBdiff\&.context\fR .RS 4 تولید diff با \fI\fR خط از متن پیرامون به‌جای مقدار پیش‌فرض ۳\&. این مقدار با گزینه \fB\-U\fR بازنویسی می‌شود\&. .RE .PP \fBdiff\&.interHunkContext\fR .RS 4 نمایش متن پیرامون میان قطعه‌تغییرهای diff، تا سقف تعداد خطوط مشخص‌شده، که بدین ترتیب قطعه‌تغییرهای نزدیک به یکدیگر ادغام می‌شوند\&. این مقدار به‌عنوان مقدار پیش‌فرض گزینه خط فرمان \fB\-\-inter\-hunk\-context\fR عمل می‌کند\&. .RE .PP \fBdiff\&.external\fR .RS 4 اگر این متغیر پیکربندی تنظیم شود، تولید diff با استفاده از سازوکار داخلی diff انجام نمی‌گیرد، بلکه با استفاده از دستور ارائه‌شده انجام می‌شود\&. می‌توان آن را با متغیر محیطی \fBGIT_EXTERNAL_DIFF\fR بازنویسی کرد\&. دستور ارائه‌شده با پارامترهایی مطابق با آنچه تحت عنوان «git Diffs» در \fBgit\fR(1) توصیف شده است فراخوانی می‌شود\&. نکته: اگر می‌خواهید از یک برنامه diff خارجی تنها بر روی زیرمجموعه‌ای از فایل‌هایتان استفاده کنید، ممکن است ترجیح دهید به‌جای آن از \fBgitattributes\fR(5) استفاده نمایید\&. .RE .PP \fBdiff\&.trustExitCode\fR .RS 4 اگر این مقدار بولی روی \fBtrue\fR تنظیم شود، انتظار می‌رود دستور \fBdiff\&.external\fR در صورتی که فایل‌های ورودی را برابر بداند کد خروج 0 و اگر آن‌ها را متفاوت بداند کد خروج 1 برگرداند، مانند \fBdiff\fR(1)\&. اگر روی \fBfalse\fR تنظیم شود (که مقدار پیش‌فرض است)، انتظار می‌رود دستور صرف‌نظر از برابری یا نابرابری کد خروج \fB0\fR را برگرداند\&. هر کد خروج دیگری باعث می‌شود گیت خطای مهلک (fatal) گزارش کند\&. .RE .PP \fBdiff\&.ignoreSubmodules\fR .RS 4 مقدار پیش‌فرض \fB\-\-ignore\-submodules\fR را تنظیم می‌کند\&. توجه داشته باشید که این تنظیم فقط بر رابط کاربری سطح بالای (Porcelain) \fBgit\fR \fBdiff\fR تأثیر می‌گذارد و نه بر دستورات سطح پایین‌تر \fBdiff\fR مانند \fBgit\fR \fBdiff\-files\fR\&. دستورات \fBgit\fR \fBcheckout\fR و \fBgit\fR \fBswitch\fR نیز هنگام گزارش تغییرات کامیت‌نشده از این تنظیم تبعیت می‌کنند\&. تنظیم آن روی \fBall\fR خلاصه زیرماژول را که معمولاً در صورت تنظیم بودن \fBstatus\&.submoduleSummary\fR توسط \fBgit\fR \fBcommit\fR و \fBgit\fR \fBstatus\fR نشان داده می‌شود غیرفعال می‌کند، مگر اینکه با استفاده از گزینه خط فرمان \fB\-\-ignore\-submodules\fR بازنویسی شود\&. دستورات \fBgit\fR \fBsubmodule\fR تحت تأثیر این تنظیم قرار نمی‌گیرند\&. به طور پیش‌فرض این مقدار روی untracked تنظیم شده است تا هر زیرماژول ردگیری‌نشده نادیده گرفته شود\&. .RE .PP \fBdiff\&.mnemonicPrefix\fR .RS 4 در صورت تنظیم، \fBgit\fR \fBdiff\fR بسته به آنچه مقایسه می‌شود، از یک جفت پیشوند متفاوت از پیشوندهای استاندارد \fBa/\fR و \fBb/\fR استفاده می‌کند\&. هنگامی که این پیکربندی فعال است، خروجی معکوس diff نیز ترتیب پیشوندها را جابه‌جا می‌کند: .PP \fBgit\fR \fBdiff\fR .RS 4 ایندکس (i) و درخت کاری (w) را مقایسه می‌کند؛ .RE .PP \fBgit\fR \fBdiff\fR \fBHEAD\fR .RS 4 یک کامیت (c) و درخت کاری (w) را مقایسه می‌کند؛ .RE .PP \fBgit\fR \fBdiff\fR \fB\-\-cached\fR .RS 4 یک کامیت (c) و ایندکس (i) را مقایسه می‌کند؛ .RE .PP \fBgit\fR \fBdiff\fR \fBHEAD:\fR\fI\fR \fI\fR .RS 4 یک شیء (o) و یک موجودیت درخت کاری (w) را مقایسه می‌کند؛ .RE .PP \fBgit\fR \fBdiff\fR \fB\-\-no\-index\fR \fI\fR \fI\fR .RS 4 دو مورد غیر گیت \fI\fR و \fI\fR را مقایسه می‌کند\&. .RE .RE .PP \fBdiff\&.noPrefix\fR .RS 4 در صورت تنظیم، \fBgit\fR \fBdiff\fR هیچ پیشوند مبدا یا مقصدی را نشان نمی‌دهد\&. .RE .PP \fBdiff\&.srcPrefix\fR .RS 4 در صورت تنظیم، \fBgit\fR \fBdiff\fR از این پیشوند مبدا استفاده می‌کند\&. پیش‌فرض \fBa/\fR است\&. .RE .PP \fBdiff\&.dstPrefix\fR .RS 4 در صورت تنظیم، \fBgit\fR \fBdiff\fR از این پیشوند مقصد استفاده می‌کند\&. پیش‌فرض \fBb/\fR است\&. .RE .PP \fBdiff\&.relative\fR .RS 4 اگر روی \fBtrue\fR تنظیم شود، \fBgit\fR \fBdiff\fR تغییرات خارج از دایرکتوری را نشان نمی‌دهد و نام‌های مسیر را نسبت به دایرکتوری فعلی نمایش می‌دهد\&. .RE .PP \fBdiff\&.orderFile\fR .RS 4 فایلی که نحوه مرتب‌سازی فایل‌ها را در یک diff مشخص می‌کند\&. برای جزئیات به گزینه \fB\-O\fR مراجعه کنید\&. اگر \fBdiff\&.orderFile\fR یک نام مسیر نسبی باشد، به صورت نسبی نسبت به ریشه درخت کاری در نظر گرفته می‌شود\&. .RE .PP \fBdiff\&.renameLimit\fR .RS 4 تعداد فایل‌هایی که در بخش جامع تشخیص کپی/تغییر نام در نظر گرفته می‌شوند؛ معادل با گزینه \fB\-l\fR در \fBgit\fR \fBdiff\fR است\&. در صورت عدم تنظیم، مقدار پیش‌فرض در حال حاضر ۱۰۰۰ است\&. اگر تشخیص تغییر نام غیرفعال باشد، این تنظیم تأثیری نخواهد داشت\&. .RE .PP \fBdiff\&.renames\fR .RS 4 آیا و چگونه گیت تغییر نام‌ها را تشخیص دهد\&. اگر روی \fBfalse\fR تنظیم شود، تشخیص تغییر نام غیرفعال می‌شود\&. اگر روی \fBtrue\fR تنظیم شود، تشخیص پایه‌ای تغییر نام فعال می‌گردد\&. اگر روی \fBcopies\fR یا \fBcopy\fR تنظیم شود، گیت کپی‌ها را نیز تشخیص خواهد داد\&. مقدار پیش‌فرض \fBtrue\fR است\&. توجه داشته باشید که این فقط بر رابط‌های کاربری سطح بالای (Porcelain) \fBgit\fR \fBdiff\fR مانند \fBgit-diff\fR(1) و \fBgit-log\fR(1) تأثیر می‌گذارد و نه بر دستورات سطح پایین‌تر مانند \fBgit-diff-files\fR(1)\&. .RE .PP \fBdiff\&.suppressBlankEmpty\fR .RS 4 یک مقدار بولی برای جلوگیری از رفتار استاندارد چاپ یک فاصله قبل از هر خط خروجی خالی\&. پیش‌فرض \fBfalse\fR است\&. .RE .PP \fBdiff\&.submodule\fR .RS 4 قالبی را که در آن تفاوت‌های زیرماژول‌ها نشان داده می‌شوند مشخص می‌کند\&. قالب \fBshort\fR فقط نام‌های کامیت‌ها را در ابتدا و انتهای بازه نشان می‌دهد\&. قالب \fBlog\fR کامیت‌های موجود در بازه را مانند کاری که \fBgit-submodule\fR(1) \fBsummary\fR انجام می‌دهد فهرست می‌کند\&. قالب \fBdiff\fR یک diff درون‌خطی از محتویات تغییریافته زیرماژول را نمایش می‌دهد\&. پیش‌فرض \fBshort\fR است\&. .RE .PP \fBdiff\&.wordRegex\fR .RS 4 یک عبارت باقاعده توسعه‌یافته پازیکس (POSIX Extended Regular Expression) که برای تعیین اینکه هنگام انجام محاسبات تفاوت کلمه به کلمه چه چیزی یک "کلمه" است استفاده می‌شود\&. دنباله‌های نویسه‌ای که با عبارت باقاعده مطابقت دارند "کلمه" محسوب می‌شوند و تمام نویسه‌های دیگر فاصله‌های خالی \fBقابل‌چشم‌پوشی\fR هستند\&. .RE .PP \fBdiff\&.\fR\fI\fR\fB\&.command\fR .RS 4 دستور درایور سفارشی diff\&. برای جزئیات به \fBgitattributes\fR(5) مراجعه کنید\&. .RE .PP \fBdiff\&.\fR\fI\fR\fB\&.trustExitCode\fR .RS 4 اگر این مقدار بولی روی \fBtrue\fR تنظیم شود، آنگاه انتظار می‌رود دستور \fBdiff\&.\fR\fI\fR\fB\&.command\fR در صورتی که فایل‌های ورودی را برابر بداند کد خروج ۰ و اگر آن‌ها را متفاوت بداند مانند \fBdiff\fR(1) کد خروج ۱ را برگرداند\&. اگر روی \fBfalse\fR تنظیم شود که پیش‌فرض است، آنگاه انتظار می‌رود دستور صرف‌نظر از برابری، کد خروج ۰ را برگرداند\&. هر کد خروج دیگری باعث می‌شود گیت یک خطای مهلک گزارش کند\&. .RE .PP \fBdiff\&.\fR\fI\fR\fB\&.xfuncname\fR .RS 4 عبارت باقاعده‌ای که درایور diff باید برای شناسایی سرفصل قطعه استفاده کند\&. همچنین می‌توان از یک الگوی توکار استفاده کرد\&. برای جزئیات به \fBgitattributes\fR(5) مراجعه کنید\&. .RE .PP \fBdiff\&.\fR\fI\fR\fB\&.binary\fR .RS 4 این گزینه را روی \fBtrue\fR تنظیم کنید تا درایور diff با فایل‌ها به عنوان باینری رفتار کند\&. برای جزئیات به \fBgitattributes\fR(5) مراجعه کنید\&. .RE .PP \fBdiff\&.\fR\fI\fR\fB\&.textconv\fR .RS 4 دستوری که درایور diff باید برای تولید نسخه تبدیل‌شده به متن یک فایل فراخوانی کند\&. نتیجه تبدیل برای تولید یک diff خوانا برای انسان استفاده می‌شود\&. برای جزئیات به \fBgitattributes\fR(5) مراجعه کنید\&. .RE .PP \fBdiff\&.\fR\fI\fR\fB\&.wordRegex\fR .RS 4 عبارت باقاعده‌ای که درایور diff باید برای تفکیک کلمات در یک خط استفاده کند\&. برای جزئیات به \fBgitattributes\fR(5) مراجعه کنید\&. .RE .PP \fBdiff\&.\fR\fI\fR\fB\&.cachetextconv\fR .RS 4 این گزینه را روی \fBtrue\fR تنظیم کنید تا درایور diff خروجی‌های تبدیل متن را در حافظه پنهان ذخیره کند\&. برای جزئیات به \fBgitattributes\fR(5) مراجعه کنید\&. .RE .PP \fBdiff\&.indentHeuristic\fR .RS 4 این گزینه را روی \fBfalse\fR تنظیم کنید تا اکتشاف‌های شهودی (heuristics) پیش‌فرضی که مرزهای قطعات diff را جابه‌جا می‌کنند تا وصله‌ها خواناتر شوند غیرفعال شوند\&. .RE .PP \fBdiff\&.algorithm\fR .RS 4 یک الگوریتم diff انتخاب کنید\&. انواع آن به شرح زیر است: .PP \fBdefault\fR, \fBmyers\fR .RS 4 الگوریتم پایه‌ای و حریصانه diff\&. در حال حاضر، این حالت پیش‌فرض است\&. .RE .PP \fBminimal\fR .RS 4 صرف زمان اضافی برای اطمینان از تولید کوچک‌ترین diff ممکن\&. .RE .PP \fBpatience\fR .RS 4 استفاده از الگوریتم "patience diff" هنگام تولید وصله‌ها\&. .RE .PP \fBhistogram\fR .RS 4 این الگوریتم، الگوریتم patience را برای "پشتیبانی از عناصر مشترک با تکرار کم" گسترش می‌دهد\&. .RE .RE .PP \fBdiff\&.wsErrorHighlight\fR .RS 4 خطاهای فاصله‌های خالی را در خطوط \fBcontext\fR، \fBold\fR یا \fBnew\fR مربوط به diff برجسته می‌کند\&. مقادیر چندگانه با کاما جدا می‌شوند؛ \fBnone\fR مقادیر قبلی را بازنشانی می‌کند، \fBdefault\fR لیست را به \fBnew\fR بازنشانی می‌کند و \fBall\fR یک نام کوتاه برای \fBold\fR,new,context است\&. خطاهای فاصله‌های خالی با \fBcolor\&.diff\&.whitespace\fR رنگ‌آمیزی می‌شوند\&. گزینه خط فرمان \fB\-\-ws\-error\-highlight=\fR\fI\fR این تنظیم را بازنویسی می‌کند\&. .RE .PP \fBdiff\&.colorMoved\fR .RS 4 اگر روی یک \fI\fR معتبر یا یک مقدار \fBtrue\fR تنظیم شود، خطوط جابه‌جاشده در یک diff با رنگ متفاوتی نمایش داده می‌شوند\&. برای جزئیات حالت‌های معتبر به \fB\-\-color\-moved\fR مراجعه کنید\&. اگر صرفاً روی \fBtrue\fR تنظیم شود، از حالت رنگ پیش‌فرض استفاده خواهد شد\&. هنگامی که روی \fBfalse\fR تنظیم شود، خطوط جابه‌جاشده رنگ‌آمیزی نمی‌شوند\&. .RE .PP \fBdiff\&.colorMovedWS\fR .RS 4 هنگامی که خطوط جابه‌جاشده با استفاده از مثلاً تنظیم \fBdiff\&.colorMoved\fR رنگ‌آمیزی می‌شوند، این گزینه نحوه برخورد با فاصله‌ها را کنترل می‌کند\&. برای جزئیات حالت‌های معتبر به \fB\-\-color\-moved\-ws\fR در \fBgit-diff\fR(1) مراجعه کنید\&. .RE .SH "همچنین ببینید (SEE ALSO)" .sp \fBdiff\fR(1), \fBgit-difftool\fR(1), \fBgit-log\fR(1), \fBgitdiffcore\fR(7), \fBgit-format-patch\fR(1), \fBgit-apply\fR(1), \fBgit-show\fR(1) .SH "گیت (GIT)" .sp بخشی از مجموعه \fBgit\fR(1)