'\" t .\" Title: git-log .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2026-06-29 .\" Manual: دستورات عمومی کاربر .\" Source: Git 2.55.0 .\" Language: Persian .\" .TH "GIT\-LOG" "1" "2026\-06\-29" "Git 2\&.55\&.0" "دستورات عمومی کاربر" .\" ----------------------------------------------------------------- .\" * 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-log \- نمایش لاگ‌های کامیت .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fBgit\fR \fBlog\fR [\fI\fR] [\fI\fR] [[\fB\-\-\fR] \fI\fR\&...] .fi .sp .SH "توضیحات (DESCRIPTION)" .sp لاگ‌های کامیت را نمایش می‌دهد\&. .sp کامیت‌هایی را فهرست می‌کند که با دنبال کردن پیوندهای \fBوالد\fR (parent) از کامیت(های) داده‌شده قابل دسترسی هستند، اما کامیت‌هایی را که از موارد دارای علامت \fI^\fR در ابتدای آن‌ها قابل دسترسی باشند مستثنی می‌کند\&. خروجی به‌طور پیش‌فرض به ترتیب معکوس زمانی ارائه می‌شود\&. .sp می‌توانید این را مانند یک عملیات مجموعه‌ای در نظر بگیرید\&. کامیت‌های قابل دسترسی از هر یک از کامیت‌های مشخص‌شده در خط فرمان یک مجموعه تشکیل می‌دهند، و سپس کامیت‌های قابل دسترسی از مواردی که با علامت \fI^\fR در ابتدا مشخص شده‌اند از آن مجموعه کسر می‌شوند\&. کامیت‌های باقی‌مانده همان چیزی هستند که در خروجی دستور ظاهر می‌شوند\&. گزینه‌های مختلف دیگر و پارامترهای مسیرها را می‌توان برای محدود کردن بیشتر نتیجه استفاده کرد\&. .sp بنابراین، دستور زیر: .sp .if n \{\ .RS 4 .\} .nf $ git log foo bar ^baz .fi .if n \{\ .RE .\} .sp .sp به این معنی است: «فهرست کردن تمام کامیت‌هایی که از \fIfoo\fR یا \fIbar\fR قابل دسترسی هستند، اما از \fIbaz\fR قابل دسترسی نیستند»\&. .sp علامت‌گذاری ویژه "\fI\fR\fB\&.\&.\fR\fI\fR" را می‌توان به‌عنوان شکل کوتاه‌شده "\fB^\fR\fI\fR \fI\fR" به کار برد\&. برای نمونه، هر یک از موارد زیر را می‌توان به‌جای یکدیگر استفاده کرد: .sp .if n \{\ .RS 4 .\} .nf $ git log origin\&.\&.HEAD $ git log HEAD ^origin .fi .if n \{\ .RE .\} .sp .sp علامت‌گذاری ویژه دیگر "\fI\fR\fB\&.\&.\&.\fR\fI\fR" است که برای ادغام‌ها سودمند است\&. مجموعه کامیت‌های حاصل، تفاضل متقارن بین دو عملوند است\&. دو دستور زیر معادل یکدیگر هستند: .sp .if n \{\ .RS 4 .\} .nf $ git log A B \-\-not $(git merge\-base \-\-all A B) $ git log A\&.\&.\&.B .fi .if n \{\ .RE .\} .sp .sp این دستور گزینه‌های مربوط به دستور \fBgit-rev-list\fR(1) را برای کنترل اینکه چه چیزی و چگونه نمایش داده شود، و گزینه‌های مربوط به دستور \fBgit-diff\fR(1) را برای کنترل نحوه نمایش تغییراتی که هر کامیت اعمال می‌کند، می‌پذیرد\&. .SH "گزینه‌ها (OPTIONS)" .PP \fB\-\-follow\fR .RS 4 فهرست کردن تاریخچه یک فایل را فراتر از تغییر نام‌ها ادامه می‌دهد (فقط برای یک فایل کار می‌کند)\&. .RE .PP \fB\-\-no\-decorate\fR, \fB\-\-decorate\fR[\fB=\fR(\fBshort\fR|\fBfull\fR|\fBauto\fR|\fBno\fR)] .RS 4 نام‌های ارجاع (ref) هر کامیت نمایش‌داده‌شده را چاپ می‌کند\&. مقادیر ممکن عبارتند از: .PP \fBshort\fR .RS 4 پیشوندهای نام ارجاع \fBrefs/heads/\fR, \fBrefs/tags/\fR و \fBrefs/remotes/\fR چاپ نمی‌شوند\&. .RE .PP \fBfull\fR .RS 4 نام کامل ارجاع (شامل پیشوند) چاپ می‌شود\&. .RE .PP \fBauto\fR .RS 4 اگر خروجی به ترمینال ارسال شود، نام‌های ارجاع به‌گونه‌ای نمایش داده می‌شوند که گویی \fBshort\fR داده شده است، در غیر این صورت هیچ نام ارجاعی نمایش داده نمی‌شود\&. .RE .sp گزینه \fB\-\-decorate\fR حالت کوتاه‌نویسی برای \fB\-\-decorate=short\fR است\&. در صورت پیکربندی، به‌طور پیش‌فرض از مقدار پیکربندی \fBlog\&.decorate\fR استفاده می‌کند، در غیر این صورت مقدار \fBauto\fR به کار می‌رود\&. .RE .PP \fB\-\-decorate\-refs=\fR\fI\fR, \fB\-\-decorate\-refs\-exclude=\fR\fI\fR .RS 4 برای هر ارجاع کاندید، اگر با هر یک از پارامترهای \fI\fR داده‌شده به \fB\-\-decorate\-refs\-exclude\fR مطابقت داشته باشد یا اگر با هیچ‌یک از پارامترهای \fI\fR داده‌شده به \fB\-\-decorate\-refs\fR تطبیق نداشته باشد، از آن برای نشانه‌گذاری (تزیین) استفاده نمی‌شود\&. گزینه پیکربندی \fBlog\&.excludeDecoration\fR امکان استثنا کردن ارجاع‌ها از نشانه‌گذاری‌ها را فراهم می‌کند، اما یک الگوی صریح در \fB\-\-decorate\-refs\fR بر مطابقت موجود در \fBlog\&.excludeDecoration\fR اولویت خواهد داشت\&. .sp اگر هیچ‌یک از این گزینه‌ها یا تنظیمات پیکربندی داده نشود، ارجاع‌ها در صورتی به‌عنوان تزیین استفاده می‌شوند که با \fBHEAD\fR, \fBrefs/heads/\fR, \fBrefs/remotes/\fR, \fBrefs/stash/\fR, یا \fBrefs/tags/\fR مطابقت داشته باشند\&. .RE .PP \fB\-\-clear\-decorations\fR .RS 4 در صورت مشخص شدن، این گزینه تمام گزینه‌های قبلی \fB\-\-decorate\-refs\fR یا \fB\-\-decorate\-refs\-exclude\fR را پاک می‌کند و فیلتر پیش‌فرض تزیین را آزاد می‌سازد تا شامل همه ارجاع‌ها شود\&. اگر مقدار پیکربندی \fBlog\&.initialDecorationSet\fR روی \fBall\fR تنظیم شده باشد، این گزینه به‌صورت پیش‌فرض اعمال می‌شود\&. .RE .PP \fB\-\-source\fR .RS 4 نام ارجاع داده‌شده در خط فرمان را که هر کامیت از طریق آن در دسترس قرار گرفته است چاپ می‌کند\&. .RE .PP \fB\-\-mailmap\fR, \fB\-\-no\-mailmap\fR, \fB\-\-use\-mailmap\fR, \fB\-\-no\-use\-mailmap\fR .RS 4 از فایل mailmap برای نگاشت نام‌ها و نشانی‌های ایمیل نویسنده و کامیت‌کننده به نام‌های واقعی و نشانی‌های ایمیل استاندارد استفاده می‌کند\&. به \fBgit-shortlog\fR(1) مراجعه کنید\&. .RE .PP \fB\-\-full\-diff\fR .RS 4 بدون این پرچم، \fBgit\fR \fBlog\fR \fB\-p\fR \fI\fR\&.\&.\&. کامیت‌هایی را که مسیرهای مشخص‌شده را تغییر داده‌اند و تفاوت‌های مربوط به همان مسیرهای مشخص‌شده را نشان می‌دهد\&. با این گزینه، تفاوت کامل برای کامیت‌هایی که مسیرهای مشخص‌شده را لمس کرده‌اند نمایش داده می‌شود؛ این بدان معنی است که "\fI\fR\&.\&.\&." فقط کامیت‌ها را محدود می‌کند، و تفاوت را برای آن کامیت‌ها محدود نمی‌سازد\&. .sp توجه داشته باشید که این گزینه بر همه انواع خروجی‌های مبتنی بر تفاوت تأثیر می‌گذارد، مانند خروجی‌های تولیدشده توسط \fB\-\-stat\fR و غیره\&. .RE .PP \fB\-\-log\-size\fR .RS 4 یک خط \fBlog\fR \fBsize\fR \fI\fR را در خروجی برای هر کامیت درج می‌کند که در آن \fI\fR طول پیام آن کامیت بر حسب بایت است\&. هدف آن افزایش سرعت ابزارهایی است که پیام‌های لاگ را از خروجی \fBgit\fR \fBlog\fR می‌خوانند تا بتوانند فضا را از قبل اختصاص دهند\&. .RE .PP \fB\-L\fR\fI\fR\fB,\fR\fI\fR\fB:\fR\fI\fR, \fB\-L:\fR\fI\fR\fB:\fR\fI\fR .RS 4 سیر تکامل محدوده خطوط مشخص‌شده توسط \fI\fR\fB,\fR\fI\fR, یا با عبارت منظم نام تابع \fI\fR را در داخل \fI\fR ردیابی می‌کند\&. شما نمی‌توانید هیچ محدودکننده مسیر مشخص کنید\&. این قابلیت در حال حاضر محدود به پیمایشی است که از یک نسخه منفرد شروع می‌شود، یعنی فقط می‌توانید صفر یا یک آرگومان نسخه مثبت مشخص کنید، و \fI\fR و \fI\fR (یا \fI\fR) باید در نسخه شروع وجود داشته باشند\&. می‌توانید این گزینه را بیش از یک بار مشخص کنید\&. این گزینه مستلزم \fB\-\-patch\fR است\&. خروجی وصله را می‌توان با استفاده از \fB\-\-no\-patch\fR نادیده گرفت\&. قالب‌های تفاوت غیر از وصله شامل \fB\-\-raw\fR, \fB\-\-name\-only\fR, \fB\-\-name\-status\fR, و \fB\-\-summary\fR پشتیبانی می‌شوند\&. قالب‌های آماری تفاوت (\fB\-\-stat\fR, \fB\-\-numstat\fR, \fB\-\-shortstat\fR, \fB\-\-dirstat\fR) در حال حاضر پیاده‌سازی نشده‌اند\&. .sp گزینه‌های قالب‌بندی وصله مانند \fB\-\-word\-diff\fR, \fB\-\-color\-moved\fR, \fB\-\-no\-prefix\fR, و گزینه‌های فاصله خالی (\fB\-w\fR, \fB\-b\fR) پشتیبانی می‌شوند، همچنین گزینه‌های کلنگ (\fB\-S\fR, \fB\-G\fR) و \fB\-\-diff\-filter\fR\&. .sp \fI\fR و \fI\fR می‌توانند یکی از این شکل‌ها را داشته باشند: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fI\fR .sp اگر \fI\fR یا \fI\fR یک عدد باشد، شماره خط مطلق را مشخص می‌کند (شمارش خطوط از 1 شروع می‌شود)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fB/\fR\fI\fR\fB/\fR .sp این شکل از نخستین خط منطبق با عبارت باقاعده POSIX داده‌شده \fI\fR استفاده می‌کند\&. اگر \fI\fR یک عبارت باقاعده باشد، از انتهای محدوده قبلی \fB\-L\fR (در صورت وجود) جستجو می‌کند، در غیر این صورت از ابتدای فایل جستجو خواهد کرد\&. اگر \fI\fR به‌صورت \fB^/\fR\fI\fR\fB/\fR باشد، از ابتدای فایل جستجو می‌کند\&. اگر \fI\fR یک عبارت باقاعده باشد، جستجو را از خط مشخص‌شده با \fI\fR آغاز می‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fB+\fR\fI\fR یا \fB\-\fR\fI\fR .sp این حالت فقط برای \fI\fR معتبر است و تعدادی خط قبل یا بعد از خط مشخص‌شده با \fI\fR را تعیین می‌کند\&. .RE .sp اگر \fB:\fR\fI\fR به‌جای \fI\fR و \fI\fR داده شود، یک عبارت باقاعده است که محدوده را از نخستین خط نام تابع منطبق با \fI\fR تا خط نام تابع بعدی مشخص می‌سازد\&. \fB:\fR\fI\fR از انتهای محدوده قبلی \fB\-L\fR (در صورت وجود) جستجو می‌کند، در غیر این صورت از ابتدای فایل جستجو خواهد کرد\&. \fB^:\fR\fI\fR از ابتدای فایل جستجو می‌کند\&. نام‌های توابع به همان شیوه‌ای تعیین می‌شوند که \fBgit\fR \fBdiff\fR سرفصل‌های قطعه وصله (patch hunk headers) را محاسبه می‌کند (به \fIDefining a custom hunk\-header\fR در \fBgitattributes\fR(5) مراجعه فرمایید)\&. .RE .PP \fI\fR .RS 4 تنها کامیت‌های موجود در محدوده بازنگری مشخص‌شده را نشان می‌دهد\&. هنگامی که هیچ \fI\fR مشخص نشده باشد، به‌طور پیش‌فرض روی \fBHEAD\fR تنظیم می‌شود (یعنی کل تاریخچه منتهی به کامیت کنونی)\&. \fBorigin\fR\fB\&.\&.\fR\fBHEAD\fR تمام کامیت‌های قابل دسترسی از کامیت فعلی (یعنی \fBHEAD\fR) را که از \fBorigin\fR قابل دسترسی نیستند مشخص می‌کند\&. برای فهرست کامل روش‌های نگارش \fI\fR, به بخش \fISpecifying Ranges\fR از \fBgitrevisions\fR(7) مراجعه کنید\&. .RE .PP [\fB\-\-\fR] \fI\fR\&.\&.\&. .RS 4 تنها کامیت‌هایی را نشان می‌دهد که برای توضیح چگونگی شکل‌گیری فایل‌های منطبق با مسیرهای مشخص‌شده کافی باشند\&. برای جزئیات و سایر حالت‌های ساده‌سازی به بخش \fIHistory Simplification\fR در ادامه مراجعه کنید\&. .sp در صورت بروز ابهام، ممکن است لازم باشد مسیرها با پیشوند \fB\-\-\fR مشخص شوند تا از گزینه‌ها یا محدوده بازنگری تفکیک گردند\&. .RE .SS "محدود کردن کامیت‌ها (Commit Limiting)" .sp علاوه بر مشخص کردن محدوده‌ای از کامیت‌ها که باید با استفاده از نمادگذاری‌های ویژه توضیح داده‌شده در بخش توضیحات فهرست شوند، محدودسازی‌های بیشتری نیز روی کامیت‌ها قابل اعمال است\&. .sp استفاده از گزینه‌های بیشتر عموماً خروجی را بیشتر محدود می‌کند (برای نمونه \fB\-\-since=\fR\fI\fR نتایج را به کامیت‌های جدیدتر از \fI\fR محدود می‌سازد، و استفاده از آن همراه با \fB\-\-grep=\fR\fI\fR نتایج را به کامیت‌هایی محدود می‌کند که پیام لاگ آن‌ها شامل خطی منطبق با \fI\fR باشد)، مگر اینکه خلاف آن ذکر شده باشد\&. .sp توجه داشته باشید که این محدودیت‌ها پیش از گزینه‌های مرتب‌سازی و قالب‌بندی کامیت، مانند \fB\-\-reverse\fR اعمال می‌شوند\&. .PP \fB\-\fR\fI\fR, \fB\-n\fR \fI\fR, \fB\-\-max\-count=\fR\fI\fR .RS 4 خروجی را به نخستین \fI\fR کامیتی که نمایش داده می‌شوند محدود می‌کند\&. .RE .PP \fB\-\-max\-count\-oldest=\fR\fI\fR .RS 4 خروجی را به آخرین \fI\fR کامیتی که نمایش داده می‌شوند محدود می‌کند\&. .RE .PP \fB\-\-skip=\fR\fI\fR .RS 4 پیش از شروع به نمایش خروجی کامیت‌ها، از \fI\fR کامیت اول صرف‌نظر می‌کند\&. .RE .PP \fB\-\-since=\fR\fI\fR, \fB\-\-after=\fR\fI\fR .RS 4 کامیت‌های جدیدتر از \fI\fR را نمایش می‌دهد\&. به‌عنوان یک حالت ویژه، \fItoday\fR به معنی نیمه‌شب گذشته است\&. .RE .PP \fB\-\-since\-as\-filter=\fR\fI\fR .RS 4 تمام کامیت‌های جدیدتر از \fI\fR را نمایش می‌دهد\&. این گزینه به‌جای توقف در نخستین کامیت قدیمی‌تر از \fI\fR, تمام کامیت‌های موجود در محدوده را پیمایش می‌کند\&. .RE .PP \fB\-\-until=\fR\fI\fR, \fB\-\-before=\fR\fI\fR .RS 4 کامیت‌های قدیمی‌تر از \fI\fR را نمایش می‌دهد\&. .RE .PP \fB\-\-author=\fR\fI\fR, \fB\-\-committer=\fR\fI\fR .RS 4 خروجی کامیت‌ها را به مواردی محدود می‌کند که خطوط هدر نویسنده/ثبت‌کننده آن‌ها با عبارت باقاعده \fI\fR مطابقت داشته باشد\&. با تعیین بیش از یک \fB\-\-author=\fR\fI\fR, کامیت‌هایی انتخاب می‌شوند که نویسنده آن‌ها با هر یک از \fI\fR ها مطابقت داشته باشد (مشابهاً برای چند مورد \fB\-\-committer=\fR\fI\fR)\&. .RE .PP \fB\-\-grep\-reflog=\fR\fI\fR .RS 4 خروجی کامیت‌ها را به مواردی محدود می‌کند که مدخل‌های رِف‌لاگ آن‌ها با عبارت باقاعده \fI\fR مطابقت داشته باشد\&. با تعیین بیش از یک \fB\-\-grep\-reflog\fR, کامیت‌هایی انتخاب می‌شوند که پیام رِف‌لاگ آن‌ها با هر یک از الگوهای داده‌شده تطبیق داشته باشد\&. استفاده از این گزینه بدون به‌کارگیری \fB\-\-walk\-reflogs\fR خطا است\&. .RE .PP \fB\-\-grep=\fR\fI\fR .RS 4 خروجی کامیت‌ها را به مواردی محدود می‌کند که پیام لاگ آن‌ها با عبارت باقاعده \fI\fR مطابقت داشته باشد\&. با مشخص کردن بیش از یک \fB\-\-grep=\fR\fI\fR, کامیت‌هایی انتخاب می‌شوند که پیام آن‌ها با هر یک از \fI\fR ها مطابقت کند (اما گزینه \fB\-\-all\-match\fR را نیز ببینید)\&. .sp هنگامی که \fB\-\-notes\fR فعال باشد، پیام موجود در یادداشت‌ها به‌گونه‌ای تطبیق داده می‌شود که گویی بخشی از پیام لاگ است\&. .RE .PP \fB\-\-all\-match\fR .RS 4 خروجی کامیت‌ها را به مواردی محدود می‌کند که با تمام الگوهای داده‌شده به \fB\-\-grep\fR مطابقت داشته باشند، به‌جای مواردی که دست‌کم با یکی تطبیق دارند\&. .RE .PP \fB\-\-invert\-grep\fR .RS 4 خروجی کامیت‌ها را به مواردی محدود می‌کند که پیام لاگ آن‌ها با \fI\fR مشخص‌شده با \fB\-\-grep=\fR\fI\fR مطابقت نداشته باشد\&. .RE .PP \fB\-i\fR, \fB\-\-regexp\-ignore\-case\fR .RS 4 الگوهای محدودکننده عبارت باقاعده را بدون حساسیت به حروف کوچک و بزرگ مطابقت می‌دهد\&. .RE .PP \fB\-\-basic\-regexp\fR .RS 4 الگوهای محدودکننده را به‌عنوان عبارات باقاعده پایه (Basic Regular Expressions) در نظر می‌گیرد؛ این رفتار پیش‌فرض است\&. .RE .PP \fB\-E\fR, \fB\-\-extended\-regexp\fR .RS 4 الگوهای محدودکننده را به‌جای عبارات باقاعده پایه پیش‌فرض، به‌عنوان عبارات باقاعده گسترش‌یافته (Extended Regular Expressions) در نظر می‌گیرد\&. .RE .PP \fB\-F\fR, \fB\-\-fixed\-strings\fR .RS 4 الگوهای محدودکننده را به‌عنوان رشته‌های ثابت در نظر می‌گیرد (الگو را به‌عنوان یک عبارت باقاعده تفسیر نمی‌کند)\&. .RE .PP \fB\-P\fR, \fB\-\-perl\-regexp\fR .RS 4 الگوهای محدودکننده را به‌عنوان عبارات باقاعده سازگار با پرل (Perl-compatible regular expressions) در نظر می‌گیرد\&. .sp پشتیبانی از این نوع عبارات باقاعده یک وابستگی اختیاری در زمان کامپایل است\&. اگر گیت بدون پشتیبانی از آن‌ها کامپایل شده باشد، ارائه این گزینه باعث خاتمه همراه با خطای برنامه می‌شود\&. .RE .PP \fB\-\-remove\-empty\fR .RS 4 هنگامی که یک مسیر داده‌شده از درخت ناپدید شود، متوقف می‌شود\&. .RE .PP \fB\-\-merges\fR .RS 4 تنها کامیت‌های ادغام را چاپ می‌کند\&. این دقیقاً معادل \fB\-\-min\-parents=2\fR است\&. .RE .PP \fB\-\-no\-merges\fR .RS 4 کامیت‌هایی با بیش از یک والد را چاپ نمی‌کند\&. این دقیقاً معادل \fB\-\-max\-parents=1\fR است\&. .RE .PP \fB\-\-min\-parents=\fR\fI\fR, \fB\-\-max\-parents=\fR\fI\fR, \fB\-\-no\-min\-parents\fR, \fB\-\-no\-max\-parents\fR .RS 4 تنها کامیت‌هایی را نشان می‌دهد که دست‌کم (یا حداکثر) دارای آن تعداد کامیت والد باشند\&. به‌ویژه، \fB\-\-max\-parents=1\fR مشابه \fB\-\-no\-merges\fR, و \fB\-\-min\-parents=2\fR مشابه \fB\-\-merges\fR است\&. \fB\-\-max\-parents=0\fR تمام کامیت‌های ریشه و \fB\-\-min\-parents=3\fR تمام ادغام‌های اختاپوسی (octopus merges) را نشان می‌دهد\&. .sp گزینه‌های \fB\-\-no\-min\-parents\fR و \fB\-\-no\-max\-parents\fR این محدودیت‌ها را دوباره (به حالت بدون محدودیت) بازنشانی می‌کنند\&. شکل‌های معادل عبارتند از \fB\-\-min\-parents=0\fR (هر کامیتی دارای ۰ یا چند والد است) و \fB\-\-max\-parents=\-1\fR (اعداد منفی نشان‌دهنده نبود حد بالاست)\&. .RE .PP \fB\-\-first\-parent\fR .RS 4 هنگام یافتن کامیت‌ها برای گنجاندن در خروجی، به محض مواجهه با یک کامیت ادغام، تنها کامیت والد نخست را دنبال می‌کند\&. این گزینه می‌تواند دید کلی بهتری در هنگام مشاهده سیر تکامل یک شاخه موضوعی (topic branch) خاص فراهم سازد، زیرا ادغام‌ها در یک شاخه موضوعی معمولاً تنها برای هماهنگ شدن دوره‌ای با بالادست به‌روزشده هستند و این گزینه به شما امکان می‌دهد کامیت‌های جداگانه‌ای را که توسط چنین ادغامی وارد تاریخچه شده‌اند نادیده بگیرید\&. .sp این گزینه همچنین قالب تفاوت پیش‌فرض برای کامیت‌های ادغام را به \fBfirst\-parent\fR تغییر می‌دهد؛ برای جزئیات به \fB\-\-diff\-merges=first\-parent\fR مراجعه کنید\&. .RE .PP \fB\-\-exclude\-first\-parent\-only\fR .RS 4 هنگام یافتن کامیت‌ها برای استثنا کردن (با یک \fI^\fR), به محض دیدن یک کامیت ادغام، تنها نخستین کامیت والد را دنبال می‌کند\&. این گزینه را می‌توان برای یافتن مجموعه تغییرات در یک شاخه موضوعی از نقطه‌ای که از شاخه دوردست منشعب شده است استفاده کرد، با توجه به این واقعیت که ادغام‌های دلخواه می‌توانند تغییرات معتبری برای شاخه موضوعی باشند\&. .RE .PP \fB\-\-maximal\-only\fR .RS 4 کامیت‌های خروجی را به مواردی محدود می‌کند که از هیچ کامیت دیگری در محدوده بازنگری قابل دسترسی نباشند\&. .RE .PP \fB\-\-not\fR .RS 4 معنای پیشوند \fI^\fR (یا عدم وجود آن) را برای تمام مشخص‌کننده‌های بازنگری بعدی تا گزینه بعدی \fB\-\-not\fR معکوس می‌کند\&. هنگامی که در خط فرمان قبل از \-\-stdin استفاده شود، بازنگری‌های دریافت‌شده از stdin تحت تأثیر آن قرار نخواهند گرفت\&. برعکس، هنگامی که از طریق ورودی استاندارد ارسال شود، بازنگری‌های ارسال‌شده در خط فرمان تحت تأثیر آن قرار نخواهند گرفت\&. .RE .PP \fB\-\-all\fR .RS 4 به‌گونه‌ای عمل می‌کند که گویی تمام ارجاع‌های موجود در \fBrefs/\fR, به همراه \fBHEAD\fR, در خط فرمان به‌عنوان \fI\fR فهرست شده‌اند\&. .RE .PP \fB\-\-branches\fR[\fB=\fR\fI\fR] .RS 4 به‌گونه‌ای عمل می‌کند که گویی تمام ارجاع‌های موجود در \fBrefs/heads\fR در خط فرمان به‌عنوان \fI\fR فهرست شده‌اند\&. اگر \fI\fR داده شود، شاخه‌ها را به موارد منطبق با الگوی پوسته (shell glob) داده‌شده محدود می‌کند\&. اگر \fI\fR فاقد \fI?\fR, \fI*\fR, یا \fI[\fR باشد، وجود \fI/*\fR در انتهای آن به صورت ضمنی فرض می‌شود\&. .RE .PP \fB\-\-tags\fR[\fB=\fR\fI\fR] .RS 4 به‌گونه‌ای عمل می‌کند که گویی تمام ارجاع‌های موجود در \fBrefs/tags\fR در خط فرمان به‌عنوان \fI\fR فهرست شده‌اند\&. اگر \fI\fR داده شود، برچسب‌ها را به موارد منطبق با الگوی پوسته داده‌شده محدود می‌کند\&. اگر الگو فاقد \fI?\fR, \fI*\fR, یا \fI[\fR باشد، وجود \fI/*\fR در انتهای آن به صورت ضمنی فرض می‌شود\&. .RE .PP \fB\-\-remotes\fR[\fB=\fR\fI\fR] .RS 4 به‌گونه‌ای عمل می‌کند که گویی تمام ارجاع‌های موجود در \fBrefs/remotes\fR در خط فرمان به‌عنوان \fI\fR فهرست شده‌اند\&. اگر \fI\fR داده شود، شاخه‌های ردگیری دوردست را به موارد منطبق با الگوی پوسته داده‌شده محدود می‌کند\&. اگر الگو فاقد \fI?\fR, \fI*\fR, یا \fI[\fR باشد، وجود \fI/*\fR در انتهای آن به صورت ضمنی فرض می‌شود\&. .RE .PP \fB\-\-glob=\fR\fI\fR .RS 4 به‌گونه‌ای عمل می‌کند که گویی تمام ارجاع‌های منطبق با الگوی پوسته \fI\fR در خط فرمان به‌عنوان \fI\fR فهرست شده‌اند\&. پیشوند \fIrefs/\fR در صورت عدم وجود، به‌طور خودکار در ابتدا اضافه می‌شود\&. اگر الگو فاقد \fI?\fR, \fI*\fR, یا \fI[\fR باشد، وجود \fI/*\fR در انتهای آن به صورت ضمنی فرض می‌شود\&. .RE .PP \fB\-\-exclude=\fR\fI\fR .RS 4 ارجاع‌های منطبق با \fI\fR را که گزینه‌های بعدی \fB\-\-all\fR, \fB\-\-branches\fR, \fB\-\-tags\fR, \fB\-\-remotes\fR, یا \fB\-\-glob\fR در نظر می‌گیرند، شامل نمی‌کند\&. تکرار این گزینه الگوهای استثنا را تا گزینه بعدی \fB\-\-all\fR, \fB\-\-branches\fR, \fB\-\-tags\fR, \fB\-\-remotes\fR, یا \fB\-\-glob\fR جمع‌آوری می‌کند (سایر گزینه‌ها یا آرگومان‌ها الگوهای جمع‌آوری‌شده را پاک نمی‌کنند)\&. .sp الگوهای داده‌شده هنگام اعمال روی \fB\-\-branches\fR, \fB\-\-tags\fR, یا \fB\-\-remotes\fR نباید با \fBrefs/heads\fR, \fBrefs/tags\fR, یا \fBrefs/remotes\fR آغاز شوند، و هنگام اعمال روی \fB\-\-glob\fR یا \fB\-\-all\fR باید حتماً با \fBrefs/\fR شروع شوند\&. اگر یک \fI/*\fR پایانی مد نظر باشد، باید صریحاً قید شود\&. .RE .PP \fB\-\-exclude\-hidden=\fR(\fBfetch\fR|\fBreceive\fR|\fBuploadpack\fR) .RS 4 ارجاع‌هایی را که توسط \fBgit\-fetch\fR, \fBgit\-receive\-pack\fR یا \fBgit\-upload\-pack\fR با مراجعه به پیکربندی مناسب \fBfetch\&.hideRefs\fR, \fBreceive\&.hideRefs\fR یا \fBuploadpack\&.hideRefs\fR به همراه \fBtransfer\&.hideRefs\fR پنهان می‌شوند، شامل نمی‌کند (به \fBgit-config\fR(1) مراجعه کنید)\&. این گزینه بر گزینه شبه‌ارجاع بعدی \fB\-\-all\fR یا \fB\-\-glob\fR تأثیر می‌گذارد و پس از پردازش آن‌ها پاک می‌شود\&. .RE .PP \fB\-\-reflog\fR .RS 4 به‌گونه‌ای عمل می‌کند که گویی تمام اشیای ذکرشده در رِف‌لاگ‌ها در خط فرمان به‌عنوان \fI\fR فهرست شده‌اند\&. .RE .PP \fB\-\-alternate\-refs\fR .RS 4 به‌گونه‌ای عمل می‌کند که گویی تمام اشیای ذکرشده به‌عنوان نوک ارجاع مخازن جایگزین در خط فرمان فهرست شده‌اند\&. یک مخزن جایگزین هر مخزنی است که دایرکتوری اشیای آن در \fBobjects/info/alternates\fR مشخص شده باشد\&. مجموعه اشیای ارائه‌شده ممکن است توسط \fBcore\&.alternateRefsCommand\fR و غیره اصلاح شود\&. به \fBgit-config\fR(1) مراجعه کنید\&. .RE .PP \fB\-\-single\-worktree\fR .RS 4 به‌طور پیش‌فرض، در صورت وجود بیش از یک درخت کاری، تمام درخت‌های کاری توسط گزینه‌های زیر بررسی می‌شوند (به \fBgit-worktree\fR(1) مراجعه کنید): \fB\-\-all\fR, \fB\-\-reflog\fR و \fB\-\-indexed\-objects\fR\&. این گزینه آن‌ها را وادار می‌کند تا تنها درخت کاری فعلی را بررسی نمایند\&. .RE .PP \fB\-\-ignore\-missing\fR .RS 4 هنگام مشاهده نام شیء نامعتبر در ورودی، به‌گونه‌ای عمل می‌کند که گویی ورودی نامعتبر داده نشده است\&. .RE .PP \fB\-\-bisect\fR .RS 4 به‌گونه‌ای عمل می‌کند که گویی ارجاع تنصیف بد \fBrefs/bisect/bad\fR در خط فرمان فهرست شده و پس از آن \fB\-\-not\fR و ارجاع‌های تنصیف خوب \fBrefs/bisect/good\-*\fR آمده است\&. .RE .PP \fB\-\-stdin\fR .RS 4 علاوه بر دریافت آرگومان‌ها از خط فرمان، آن‌ها را از ورودی استاندارد نیز می‌خواند\&. این گزینه کامیت‌ها و شبه‌گزینه‌هایی مانند \fB\-\-all\fR و \fB\-\-glob=\fR را می‌پذیرد\&. هنگامی که یک جداکننده \fB\-\-\fR مشاهده شود، ورودی بعدی به‌عنوان مسیر در نظر گرفته شده و برای محدود کردن نتیجه استفاده می‌شود\&. پرچم‌هایی مانند \fB\-\-not\fR که از طریق ورودی استاندارد خوانده می‌شوند، تنها برای آرگومان‌هایی که به همان روش ارسال شده‌اند رعایت می‌شوند و بر هیچ‌یک از آرگومان‌های خط فرمان بعدی تأثیر نخواهند گذاشت\&. .RE .PP \fB\-\-cherry\-mark\fR .RS 4 مشابه \fB\-\-cherry\-pick\fR (در ادامه ببینید) عمل می‌کند اما کامیت‌های معادل را به‌جای حذف کردن، با علامت \fB=\fR و موارد غیرمعادل را با علامت \fB+\fR نشانه‌گذاری می‌نماید\&. .RE .PP \fB\-\-cherry\-pick\fR .RS 4 هر کامیتی را که تغییری مشابه کامیت دیگری در «طرف دیگر» ایجاد می‌کند، هنگامی که مجموعه کامیت‌ها با تفاضل متقارن محدود شده باشند، حذف می‌نماید\&. .sp برای نمونه، اگر دو شاخه \fBA\fR و \fBB\fR داشته باشید، روش معمول برای فهرست کردن تمام کامیت‌های موجود در یک طرف آن‌ها استفاده از \fB\-\-left\-right\fR است (مثال زیر در توضیحات گزینه \fB\-\-left\-right\fR را ببینید)\&. با این حال، کامیت‌هایی را که از شاخه دیگر دست‌چین (cherry-pick) شده‌اند نشان می‌دهد (برای مثال «سومین در b» ممکن است از شاخه A دست‌چین شده باشد)\&. با این گزینه، چنین جفت کامیت‌هایی از خروجی مستثنی می‌شوند\&. .RE .PP \fB\-\-left\-only\fR, \fB\-\-right\-only\fR .RS 4 تنها کامیت‌های سمت مربوطه یک تفاضل متقارن را فهرست می‌کند، یعنی تنها مواردی که با < یا > توسط \fB\-\-left\-right\fR علامت‌گذاری می‌شوند\&. .sp برای نمونه، \fB\-\-cherry\-pick\fR \fB\-\-right\-only\fR \fBA\fR\fB\&.\&.\&.\fR\fBB\fR آن دسته از کامیت‌های موجود در \fBB\fR را که در \fBA\fR هستند یا معادل وصله‌ای با یک کامیت در \fBA\fR می‌باشند حذف می‌کند\&. به عبارت دیگر، این دستور کامیت‌های \fB+\fR را از \fBgit\fR \fBcherry\fR \fBA\fR \fBB\fR فهرست می‌کند\&. به‌طور دقیق‌تر، \fB\-\-cherry\-pick\fR \fB\-\-right\-only\fR \fB\-\-no\-merges\fR فهرست دقیق را ارائه می‌دهد\&. .RE .PP \fB\-\-cherry\fR .RS 4 مترادفی برای \fB\-\-right\-only\fR \fB\-\-cherry\-mark\fR \fB\-\-no\-merges\fR; سودمند برای محدود کردن خروجی به کامیت‌های سمت خودمان و نشانه‌گذاری مواردی که به سمت دیگر یک تاریخچه شاخه‌بندی‌شده اعمال شده‌اند با دستور \fBgit\fR \fBlog\fR \fB\-\-cherry\fR \fBupstream\fR\fB\&.\&.\&.\fR\fBmybranch\fR, مشابه با \fBgit\fR \fBcherry\fR \fBupstream\fR \fBmybranch\fR\&. .RE .PP \fB\-g\fR, \fB\-\-walk\-reflogs\fR .RS 4 به‌جای پیمایش زنجیره نیاکان کامیت، مدخل‌های رِف‌لاگ را از جدیدترین به سمت قدیمی‌ترها پیمایش می‌کند\&. هنگامی که از این گزینه استفاده می‌شود نمی‌توانید کامیت‌هایی را برای استثنا کردن مشخص کنید (یعنی نمادگذاری‌های \fB^\fR\fI\fR, \fI\fR\fB\&.\&.\fR\fI\fR, و \fI\fR\fB\&.\&.\&.\fR\fI\fR قابل استفاده نیستند)\&. .sp با قالبی از \fB\-\-pretty\fR به‌جز \fBoneline\fR و \fBreference\fR (به دلایل واضح)، این گزینه باعث می‌شود خروجی دارای دو خط اطلاعات اضافی برگرفته از رِف‌لاگ باشد\&. نشان‌دهنده رِف‌لاگ در خروجی ممکن است به‌صورت \fBref@\fR{\fI\fR} (که در آن \fI\fR اندیس معکوس زمانی در رِف‌لاگ است) یا به‌صورت \fBref@\fR{\fI\fR} (همراه با \fI\fR آن مدخل) بسته به چند قانون نمایش داده شود: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} اگر نقطه شروع به‌صورت \fBref@\fR{\fI\fR} مشخص شده باشد، قالب اندیس نمایش داده می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} اگر نقطه شروع به‌صورت \fBref@\fR{now} مشخص شده باشد، قالب برچسب زمان نمایش داده می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} اگر از هیچ‌کدام استفاده نشده باشد، اما \fB\-\-date\fR در خط فرمان داده شده باشد، برچسب زمان در قالب خواسته‌شده توسط \fB\-\-date\fR نمایش داده می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} در غیر این صورت، قالب اندیس نمایش داده می‌شود\&. .RE .sp تحت \fB\-\-pretty=oneline\fR, پیام کامیت با این اطلاعات در همان خط پیشوند می‌گیرد\&. این گزینه با \fB\-\-reverse\fR قابل ترکیب نیست\&. همچنین به \fBgit-reflog\fR(1) مراجعه کنید\&. .sp تحت \fB\-\-pretty=reference\fR, این اطلاعات اصلاً نمایش داده نخواهند شد\&. .RE .PP \fB\-\-merge\fR .RS 4 کامیت‌هایی را که مسیرهای دارای تعارض را در محدوده \fBHEAD\fR\fB\&.\&.\&.\fR\fI\fR تغییر داده‌اند نمایش می‌دهد، که در آن \fI\fR نخستین شبه‌ارجاع موجود در \fBMERGE_HEAD\fR, \fBCHERRY_PICK_HEAD\fR, \fBREVERT_HEAD\fR یا \fBREBASE_HEAD\fR است\&. تنها زمانی کار می‌کند که ایندکس دارای مدخل‌های ادغام‌نشده باشد\&. این گزینه را می‌توان برای نمایش کامیت‌های مرتبط هنگام حل تعارض‌های ناشی از یک ادغام ۳-طرفه استفاده کرد\&. .RE .PP \fB\-\-boundary\fR .RS 4 کامیت‌های مرزی مستثنی‌شده را در خروجی می‌آورد\&. کامیت‌های مرزی با پیشوند \fB\-\fR مشخص می‌شوند\&. .RE .SS "ساده‌سازی تاریخچه (History Simplification)" .sp گاهی اوقات شما تنها به بخش‌هایی از تاریخچه علاقه‌مندید، برای نمونه کامیت‌هایی که یک خاص را تغییر می‌دهند\&. اما \fIساده‌سازی تاریخچه\fR دو بخش دارد: یک بخش انتخاب کامیت‌ها است و بخش دیگر چگونگی انجام آن، چرا که راهبردهای گوناگونی برای ساده‌سازی تاریخچه وجود دارد\&. .sp گزینه‌های زیر کامیت‌های نمایش‌داده‌شده را انتخاب می‌کنند: .PP \fI\fR .RS 4 کامیت‌هایی که مشخص‌شده را تغییر می‌دهند انتخاب می‌شوند\&. .RE .PP \fB\-\-simplify\-by\-decoration\fR .RS 4 کامیت‌هایی که توسط یک شاخه یا برچسب ارجاع داده شده‌اند انتخاب می‌شوند\&. .RE .sp توجه داشته باشید که ممکن است کامیت‌های اضافی نیز برای ارائه یک تاریخچه معنادار نمایش داده شوند\&. .sp گزینه‌های زیر بر نحوه انجام ساده‌سازی تأثیر می‌گذارند: .PP \fBحالت\fR \fBپیش‌فرض (Default mode)\fR .RS 4 تاریخچه را به ساده‌ترین تاریخچه‌ای که وضعیت نهایی درخت را توضیح می‌دهد ساده می‌کند\&. ساده‌ترین است زیرا برخی از شاخه‌های فرعی را در صورتی که نتیجه نهایی یکسان باشد (یعنی ادغام شاخه‌هایی با محتوای یکسان) هرس می‌کند\&. .RE .PP \fB\-\-show\-pulls\fR .RS 4 تمام کامیت‌های حالت پیش‌فرض را شامل می‌شود، به اضافه هر کامیت ادغامی که نسبت به والد نخست TREESAME نباشد ولی نسبت به والد بعدی TREESAME باشد\&. این حالت برای نمایش کامیت‌های ادغامی که «نخستین بار تغییری را وارد یک شاخه کردند» سودمند است\&. .RE .PP \fB\-\-full\-history\fR .RS 4 مشابه حالت پیش‌فرض است، اما بخشی از تاریخچه را هرس نمی‌کند\&. .RE .PP \fB\-\-dense\fR .RS 4 تنها کامیت‌های انتخاب‌شده به علاوه مواردی برای داشتن تاریخچه معنادار نمایش داده می‌شوند\&. .RE .PP \fB\-\-sparse\fR .RS 4 تمام کامیت‌ها در تاریخچه ساده‌سازی‌شده نمایش داده می‌شوند\&. .RE .PP \fB\-\-simplify\-merges\fR .RS 4 گزینه‌ای اضافی برای \fB\-\-full\-history\fR جهت حذف برخی از ادغام‌های غیرضروری از تاریخچه حاصل، چرا که هیچ کامیت انتخاب‌شده‌ای در این ادغام نقشی نداشته است\&. .RE .PP \fB\-\-ancestry\-path\fR[\fB=\fR\fI\fR] .RS 4 هنگامی که محدوده‌ای از کامیت‌ها برای نمایش داده می‌شود (مانند \fI\fR\fB\&.\&.\fR\fI\fR یا \fI\fR \fB^\fR\fI\fR), و یک کامیت \fI\fR در آن محدوده مشخص گردد، تنها کامیت‌هایی از آن محدوده را نمایش می‌دهد که نیاکان \fI\fR, نوادگان \fI\fR, یا خود \fI\fR باشند\&. اگر هیچ کامیتی مشخص نشود، از \fI\fR (بخش مستثنی‌شده محدوده) به‌عنوان \fI\fR استفاده می‌کند\&. می‌توان آن را چندین بار ارسال کرد؛ در این صورت، یک کامیت در صورتی گنجانده می‌شود که هر یک از کامیت‌های ارائه‌شده باشد یا نیا یا نواده یکی از آن‌ها باشد\&. .RE .sp توضیحات دقیق‌تر در ادامه می‌آید\&. .sp فرض کنید شما \fBfoo\fR را به‌عنوان \fI\fR مشخص کرده‌اید\&. ما کامیت‌هایی را که \fBfoo\fR را تغییر می‌دهند !TREESAME (نایکسان از نظر درخت) و بقیه را TREESAME (یکسان از نظر درخت) می‌نامیم\&. (در یک diff فیلترشده برای \fBfoo\fR، آن‌ها به ترتیب متفاوت و برابر به نظر می‌رسند\&.) .sp در ادامه، ما همواره به همین تاریخچه نمونه برای نشان دادن تفاوت‌های بین تنظیمات ساده‌سازی ارجاع خواهیم داد\&. فرض می‌کنیم شما در حال فیلتر کردن برای فایل \fBfoo\fR در این گراف کامیت هستید: .sp .if n \{\ .RS 4 .\} .nf \&.\-A\-\-\-M\-\-\-N\-\-\-O\-\-\-P\-\-\-Q / / / / / / I B C D E Y \e / / / / / `\-\-\-\-\-\-\-\-\-\-\-\-\-\*(Aq X .fi .if n \{\ .RE .\} .sp .sp خط افقی تاریخچه A\-\-\-Q به‌عنوان والد نخست هر ادغام در نظر گرفته می‌شود\&. کامیت‌ها عبارتند از: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBI\fR کامیت اولیه است که در آن \fBfoo\fR با محتوای \fBasdf\fR و فایلی به نام \fBquux\fR با محتوای \fBquux\fR وجود دارد\&. کامیت‌های اولیه با یک درخت خالی مقایسه می‌شوند، بنابراین \fBI\fR مقدار !TREESAME دارد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} در \fBA\fR, فایل \fBfoo\fR تنها حاوی \fBfoo\fR است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBB\fR شامل همان تغییر \fBA\fR است\&. ادغام آن \fBM\fR بدیهی (trivial) است و بنابراین نسبت به تمام والدین TREESAME است\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBC\fR تغییری در \fBfoo\fR ایجاد نمی‌کند، اما ادغام آن \fBN\fR آن را به \fBfoobar\fR تغییر می‌دهد، بنابراین نسبت به هیچ والدی TREESAME نیست\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBD\fR مقدار \fBfoo\fR را روی \fBbaz\fR تنظیم می‌کند\&. ادغام آن \fBO\fR رشته‌های برگرفته از \fBN\fR و \fBD\fR را به \fBfoobarbaz\fR ترکیب می‌کند؛ یعنی نسبت به هیچ والدی TREESAME نیست\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBE\fR مقدار \fBquux\fR را به \fBxyzzy\fR تغییر می‌دهد، و ادغام آن \fBP\fR رشته‌ها را به \fBquux\fR \fBxyzzy\fR ترکیب می‌نماید\&. \fBP\fR نسبت به \fBO\fR دارای وضعیت TREESAME است، اما نسبت به \fBE\fR نیست\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBX\fR یک کامیت ریشه مستقل است که فایل جدید \fBside\fR را اضافه کرده، و \fBY\fR آن را اصلاح نموده است\&. \fBY\fR نسبت به \fBX\fR وضعیت TREESAME دارد\&. ادغام آن \fBQ\fR فایل \fBside\fR را به \fBP\fR اضافه کرده است، و \fBQ\fR نسبت به \fBP\fR دارای وضعیت TREESAME است، اما نسبت به \fBY\fR نیست\&. .RE .sp دستور \fBrev\-list\fR در تاریخچه به سمت عقب پیمایش می‌کند، و بر اساس اینکه آیا \fB\-\-full\-history\fR و/یا بازنویسی والدین (از طریق \fB\-\-parents\fR یا \fB\-\-children\fR) استفاده شده باشد، کامیت‌ها را شامل یا مستثنی می‌سازد\&. تنظیمات زیر در دسترس هستند\&. .PP حالت پیش‌فرض (Default mode) .RS 4 کامیت‌ها در صورتی که نسبت به هیچ والدی TREESAME نباشند گنجانده می‌شوند (اگرچه این قابل تغییر است، \fB\-\-sparse\fR را در ادامه ببینید)\&. اگر کامیت یک ادغام باشد و نسبت به یک والد TREESAME باشد، تنها همان والد را دنبال می‌کند\&. (حتی اگر چندین والد TREESAME وجود داشته باشد، فقط یکی از آن‌ها دنبال می‌شود\&.) در غیر این صورت، تمام والدین دنبال می‌شوند\&. .sp این منجر به نتیجه زیر می‌شود: .sp .if n \{\ .RS 4 .\} .nf \&.\-A\-\-\-N\-\-\-O / / / I\-\-\-\-\-\-\-\-\-D .fi .if n \{\ .RE .\} .sp توجه کنید چگونه قاعده دنبال کردن تنها والد TREESAME (در صورت وجود)، \fBB\fR را کاملاً از بررسی حذف کرد\&. \fBC\fR از طریق \fBN\fR بررسی شد، اما وضعیت TREESAME داشت\&. کامیت‌های ریشه با یک درخت خالی مقایسه می‌شوند، بنابراین \fBI\fR دارای وضعیت !TREESAME است\&. .sp روابط والد/فرزند تنها با \fB\-\-parents\fR قابل مشاهده هستند، اما این موضوع بر کامیت‌های انتخاب‌شده در حالت پیش‌فرض تأثیری ندارد، بنابراین ما خطوط والدین را نمایش داده‌ایم\&. .RE .PP \fB\-\-full\-history\fR بدون بازنویسی والدین .RS 4 این حالت با حالت پیش‌فرض در یک نکته تفاوت دارد: همیشه تمام والدین یک ادغام را دنبال می‌کند، حتی اگر نسبت به یکی از آن‌ها TREESAME باشد\&. حتی اگر بیش از یک سمت ادغام دارای کامیت‌های گنجانده‌شده باشد، این بدان معنا نیست که خود ادغام نیز شامل شده است! در مثال، به این نتیجه می‌رسیم: .sp .if n \{\ .RS 4 .\} .nf I A B N D O P Q .fi .if n \{\ .RE .\} .sp \fBM\fR حذف شد زیرا نسبت به هر دو والد وضعیت TREESAME داشت\&. \fBE\fR, \fBC\fR و \fBB\fR همگی پیمایش شدند، اما تنها \fBB\fR دارای وضعیت !TREESAME بود، بنابراین بقیه ظاهر نمی‌شوند\&. .sp توجه داشته باشید که بدون بازنویسی والدین، عملاً امکان صحبت در مورد روابط والد/فرزند میان کامیت‌ها وجود ندارد، از این رو آن‌ها را به صورت گسسته نشان می‌دهیم\&. .RE .PP \fB\-\-full\-history\fR با بازنویسی والدین .RS 4 کامیت‌های عادی تنها در صورتی گنجانده می‌شوند که وضعیت !TREESAME داشته باشند (اگرچه این قابل تغییر است، \fB\-\-sparse\fR را در ادامه ببینید)\&. .sp ادغام‌ها همیشه گنجانده می‌شوند\&. با این حال، فهرست والدین آن‌ها بازنویسی می‌شود: در امتداد هر والد، کامیت‌هایی را که خودشان گنجانده نشده‌اند هرس می‌کند\&. این به نتیجه زیر می‌انجامد: .sp .if n \{\ .RS 4 .\} .nf \&.\-A\-\-\-M\-\-\-N\-\-\-O\-\-\-P\-\-\-Q / / / / / I B / D / \e / / / / `\-\-\-\-\-\-\-\-\-\-\-\-\-\*(Aq .fi .if n \{\ .RE .\} .sp با \fB\-\-full\-history\fR بدون بازنویسی در بالا مقایسه کنید\&. توجه داشته باشید که \fBE\fR هرس شد زیرا TREESAME بود، اما فهرست والدین P بازنویسی شد تا شامل والد \fBE\fR یعنی \fBI\fR باشد\&. همین اتفاق برای \fBC\fR و \fBN\fR, و برای \fBX\fR, \fBY\fR و \fBQ\fR نیز رخ داد\&. .RE .sp علاوه بر تنظیمات فوق، می‌توانید تغییر دهید که آیا وضعیت TREESAME بر گنجاندن تأثیر بگذارد یا خیر: .PP \fB\-\-dense\fR .RS 4 کامیت‌های پیمایش‌شده در صورتی گنجانده می‌شوند که نسبت به هیچ والدی TREESAME نباشند\&. .RE .PP \fB\-\-sparse\fR .RS 4 تمام کامیت‌هایی که پیمایش می‌شوند گنجانده خواهند شد\&. .sp توجه داشته باشید که بدون \fB\-\-full\-history\fR, این گزینه همچنان ادغام‌ها را ساده‌سازی می‌کند: اگر یکی از والدین TREESAME باشد، ما تنها همان یکی را دنبال می‌کنیم، بنابراین سمت‌های دیگر ادغام هرگز پیمایش نمی‌شوند\&. .RE .PP \fB\-\-simplify\-merges\fR .RS 4 نخست، یک گراف تاریخچه را به همان روشی که \fB\-\-full\-history\fR با بازنویسی والدین انجام می‌دهد می‌سازد (بالا را ببینید)\&. .sp سپس هر کامیت \fBC\fR را به جایگزین آن \fBC\fR\*(Aq در تاریخچه نهایی بر اساس قوانین زیر ساده می‌کند: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} مقدار \fBC\fR\*(Aq را روی \fBC\fR تنظیم کنید\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} هر والد \fBP\fR از \fBC\fR\*(Aq را با نسخه ساده‌شده‌اش \fBP\fR\*(Aq جایگزین کنید\&. در این فرایند، والدینی را که نیاکان سایر والدین هستند یا کامیت‌های ریشه‌ای هستند که نسبت به یک درخت خالی وضعیت TREESAME دارند حذف کرده و موارد تکراری را بزدایید، اما دقت کنید که هرگز تمام والدینی را که نسبت به آن‌ها TREESAME هستیم حذف نکنید\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} اگر پس از این بازنویسی والدین، \fBC\fR\*(Aq یک کامیت ریشه یا ادغام باشد (دارای ۰ یا بیش از ۱ والد باشد)، یک کامیت مرزی باشد، یا !TREESAME باشد، باقی می‌ماند\&. در غیر این صورت، با تنها والد خود جایگزین می‌شود\&. .RE .sp تأثیر این کار به بهترین شکل با مقایسه آن با \fB\-\-full\-history\fR همراه با بازنویسی والدین نشان داده می‌شود\&. مثال به صورت زیر درمی‌آید: .sp .if n \{\ .RS 4 .\} .nf \&.\-A\-\-\-M\-\-\-N\-\-\-O / / / I B D \e / / `\-\-\-\-\-\-\-\-\-\*(Aq .fi .if n \{\ .RE .\} .sp تفاوت‌های عمده در \fBN\fR, \fBP\fR, و \fBQ\fR را نسبت به \fB\-\-full\-history\fR ملاحظه فرمایید: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} از فهرست والدین \fBN\fR\*(Aqs کامیت \fBI\fR حذف شد، زیرا نیاکان والد دیگر یعنی \fBM\fR است\&. با این وجود، \fBN\fR باقی ماند زیرا وضعیت !TREESAME دارد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} از فهرست والدین \fBP\fR\*(Aqs نیز مشابهاً \fBI\fR حذف گردید\&. سپس \fBP\fR به‌طور کامل حذف شد، زیرا یک والد داشت و وضعیت TREESAME داشت\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} فهرست والدین \fBQ\fR\*(Aqs کامیت \fBY\fR را به \fBX\fR ساده کرد\&. سپس \fBX\fR حذف شد، چرا که یک ریشه با وضعیت TREESAME بود\&. \fBQ\fR سپس به‌طور کامل حذف شد، زیرا یک والد داشت و وضعیت TREESAME داشت\&. .RE .RE .sp حالت ساده‌سازی دیگری نیز در دسترس است: .PP \fB\-\-ancestry\-path\fR[\fB=\fR\fI\fR] .RS 4 کامیت‌های نمایش‌داده‌شده را به مواردی محدود می‌کند که نیاکان \fI\fR, نوادگان \fI\fR, یا خود \fI\fR باشند\&. .sp به‌عنوان یک نمونه کاربرد، تاریخچه کامیت زیر را در نظر بگیرید: .sp .if n \{\ .RS 4 .\} .nf D\-\-\-E\-\-\-\-\-\-\-F / \e \e B\-\-\-C\-\-\-G\-\-\-H\-\-\-I\-\-\-J / \e A\-\-\-\-\-\-\-K\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-L\-\-M .fi .if n \{\ .RE .\} .sp یک عبارت معمولی \fID\&.\&.M\fR مجموعه کامیت‌هایی را محاسبه می‌کند که نیاکان \fBM\fR هستند، اما مواردی را که نیاکان \fBD\fR می‌باشند مستثنی می‌سازد\&. این برای مشاهده آنچه برای تاریخچه منتهی به \fBM\fR از زمان \fBD\fR رخ داده مفید است، به این معنی که « \fBM\fR چه چیزی دارد که در \fBD\fR وجود نداشت»\&. نتیجه در این مثال تمام کامیت‌ها خواهد بود، به جز \fBA\fR و \fBB\fR (و البته خود \fBD\fR)\&. .sp اما هنگامی که بخواهیم بدانیم چه کامیت‌هایی در \fBM\fR به باگ معرفی‌شده توسط \fBD\fR آلوده شده‌اند و نیاز به رفع دارند، ممکن است بخواهیم تنها زیرمجموعه‌ای از \fBD\fR\fB\&.\&.\fR\fBM\fR را مشاهده کنیم که واقعاً از نوادگان \fBD\fR هستند، یعنی مستثنی کردن \fBC\fR و \fBK\fR\&. این دقیقاً همان کاری است که گزینه \fB\-\-ancestry\-path\fR انجام می‌دهد\&. اعمال آن روی محدوده \fBD\fR\fB\&.\&.\fR\fBM\fR به نتیجه زیر می‌انجامد: .sp .if n \{\ .RS 4 .\} .nf E\-\-\-\-\-\-\-F \e \e G\-\-\-H\-\-\-I\-\-\-J \e L\-\-M .fi .if n \{\ .RE .\} .sp ما همچنین می‌توانیم از \fB\-\-ancestry\-path=D\fR به‌جای \fB\-\-ancestry\-path\fR استفاده کنیم که هنگام اعمال روی محدوده \fBD\fR\fB\&.\&.\fR\fBM\fR معنای یکسانی دارد اما صریح‌تر است\&. .sp اگر در عوض به یک موضوع خاص در این محدوده و تمام کامیت‌های متأثر از آن موضوع علاقه‌مند باشیم، ممکن است تنها بخواهیم زیرمجموعه‌ای از \fBD\fR\fB\&.\&.\fR\fBM\fR را مشاهده کنیم که آن موضوع را در مسیر نیاکان خود دارند\&. بنابراین، برای مثال استفاده از \fB\-\-ancestry\-path=H\fR \fBD\fR\fB\&.\&.\fR\fBM\fR به نتیجه زیر می‌انجامد: .sp .if n \{\ .RS 4 .\} .nf E \e C\-\-\-G\-\-\-H\-\-\-I\-\-\-J \e L\-\-M .fi .if n \{\ .RE .\} .sp در حالی که \fB\-\-ancestry\-path=K\fR \fBD\fR\fB\&.\&.\fR\fBM\fR به این نتیجه منجر می‌شود: .sp .if n \{\ .RS 4 .\} .nf K\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-L\-\-M .fi .if n \{\ .RE .\} .sp .RE .sp پیش از بحث درباره گزینه دیگر، یعنی \fB\-\-show\-pulls\fR, لازم است یک تاریخچه نمونه جدید بسازیم\&. .sp یک مشکل رایج که کاربران هنگام مشاهده تاریخچه ساده‌سازی‌شده با آن مواجه می‌شوند این است که کامیتی که می‌دانند فایلی را تغییر داده است به نوعی در تاریخچه ساده‌شده فایل ظاهر نمی‌شود\&. بیایید یک مثال جدید را نشان دهیم و بررسی کنیم که گزینه‌هایی مانند \fB\-\-full\-history\fR و \fB\-\-simplify\-merges\fR در چنین حالتی چگونه کار می‌کنند: .sp .if n \{\ .RS 4 .\} .nf \&.\-A\-\-\-M\-\-\-\-\-C\-\-N\-\-\-O\-\-\-P / / \e \e \e/ / / I B \e R\-\*(Aq`\-Z\*(Aq / \e / \e/ / \e / /\e / `\-\-\-X\-\-\*(Aq `\-\-\-Y\-\-\*(Aq .fi .if n \{\ .RE .\} .sp .sp برای این مثال، فرض کنید \fBI\fR فایل \fBfile\&.txt\fR را ایجاد کرد که توسط \fBA\fR, \fBB\fR, و \fBX\fR به روش‌های متفاوتی اصلاح شد\&. کامیت‌های تک‌والدی \fBC\fR, \fBZ\fR, و \fBY\fR تغییری در \fBfile\&.txt\fR ایجاد نمی‌کنند\&. کامیت ادغام \fBM\fR با حل تعارض ادغام برای گنجاندن هر دو تغییر از \fBA\fR و \fBB\fR ایجاد شد و بنابراین نسبت به هیچ‌کدام TREESAME نیست\&. اما کامیت ادغام \fBR\fR با نادیده گرفتن محتویات \fBfile\&.txt\fR در \fBM\fR و گرفتن تنها محتویات \fBfile\&.txt\fR در \fBX\fR ایجاد گردید\&. از این رو، \fBR\fR نسبت به \fBX\fR دارای وضعیت TREESAME است اما نسبت به \fBM\fR نیست\&. در نهایت، تفکیک طبیعی ادغام برای ایجاد \fBN\fR گرفتن محتویات \fBfile\&.txt\fR در \fBR\fR است، بنابراین \fBN\fR نسبت به \fBR\fR وضعیت TREESAME دارد اما نسبت به \fBC\fR ندارد\&. کامیت‌های ادغام \fBO\fR و \fBP\fR نسبت به والدین اول خود وضعیت TREESAME دارند، اما به ترتیب نسبت به والدین دوم خود یعنی \fBZ\fR و \fBY\fR وضعیت TREESAME ندارند\&. .sp هنگام استفاده از حالت پیش‌فرض، \fBN\fR و \fBR\fR هر دو دارای یک والد TREESAME هستند، بنابراین آن یال‌ها پیمایش شده و بقیه نادیده گرفته می‌شوند\&. گراف تاریخچه حاصل به صورت زیر است: .sp .if n \{\ .RS 4 .\} .nf I\-\-\-X .fi .if n \{\ .RE .\} .sp .sp هنگام استفاده از \fB\-\-full\-history\fR, گیت تمام یال‌ها را پیمایش می‌کند\&. این کار کامیت‌های \fBA\fR و \fBB\fR و ادغام \fBM\fR را آشکار می‌سازد، اما کامیت‌های ادغام \fBO\fR و \fBP\fR را نیز نمایان می‌کند\&. با بازنویسی والدین، گراف حاصل به شکل زیر خواهد بود: .sp .if n \{\ .RS 4 .\} .nf \&.\-A\-\-\-M\-\-\-\-\-\-\-\-N\-\-\-O\-\-\-P / / \e \e \e/ / / I B \e R\-\*(Aq`\-\-\*(Aq / \e / \e/ / \e / /\e / `\-\-\-X\-\-\*(Aq `\-\-\-\-\-\-\*(Aq .fi .if n \{\ .RE .\} .sp .sp در اینجا، کامیت‌های ادغام \fBO\fR و \fBP\fR نویز اضافی ایجاد می‌کنند، زیرا در واقع تغییری در \fBfile\&.txt\fR ایجاد نکرده‌اند\&. آن‌ها تنها موضوعی را ادغام کرده‌اند که بر پایه نسخه قدیمی‌تری از \fBfile\&.txt\fR بنا شده بود\&. این یک مسئله رایج در مخازنی است که از گردش کاری با مشارکت‌کنندگان موازی زیاد استفاده می‌کنند که شاخه‌های موضوعی خود را در طول یک تنه اصلی ادغام می‌نمایند: ادغام‌های نامرتبط زیادی در نتایج \fB\-\-full\-history\fR ظاهر می‌شوند\&. .sp هنگام استفاده از گزینه \fB\-\-simplify\-merges\fR, کامیت‌های \fBO\fR و \fBP\fR از نتایج ناپدید می‌شوند\&. دلیل آن این است که والدین دوم بازنویسی‌شده \fBO\fR و \fBP\fR از والدین اول آن‌ها قابل دسترسی هستند\&. آن یال‌ها حذف می‌شوند و سپس کامیت‌ها مانند کامیت‌های تک‌والدی به نظر می‌رسند که نسبت به والد خود TREESAME هستند\&. این اتفاق برای کامیت \fBN\fR نیز رخ می‌دهد و نمایی از تاریخچه به صورت زیر ایجاد می‌کند: .sp .if n \{\ .RS 4 .\} .nf \&.\-A\-\-\-M\-\-\&. / / \e I B R \e / / \e / / `\-\-\-X\-\-\*(Aq .fi .if n \{\ .RE .\} .sp .sp در این نما، ما تمام تغییرات تک‌والدی مهم از \fBA\fR, \fBB\fR, و \fBX\fR را می‌بینیم\&. همچنین ادغام با دقت حل‌شده \fBM\fR و ادغام نه‌چندان با دقت حل‌شده \fBR\fR را مشاهده می‌کنیم\&. این معمولاً اطلاعات کافی برای تعیین اینکه چرا کامیت‌های \fBA\fR و \fBB\fR در نمای پیش‌فرض از تاریخچه «ناپدید شدند» را فراهم می‌سازد\&. با این حال، چند مشکل در این رویکرد وجود دارد\&. .sp مشکل نخست کارایی است\&. برخلاف هر گزینه قبلی، گزینه \fB\-\-simplify\-merges\fR مستلزم پیمایش کل تاریخچه کامیت پیش از بازگرداندن حتی یک نتیجه است\&. این می‌تواند استفاده از این گزینه را برای مخازن بسیار بزرگ دشوار سازد\&. .sp مشکل دوم موضوع حسابرسی (auditing) است\&. هنگامی که مشارکت‌کنندگان زیادی روی یک مخزن کار می‌کنند، مهم است که کدام کامیت‌های ادغام تغییری را وارد یک شاخه مهم کرده‌اند\&. ادغام مشکل‌ساز \fBR\fR در بالا احتمالاً آن کامیت ادغامی نبوده است که برای ادغام در یک شاخه مهم استفاده شده است\&. در عوض، ادغام \fBN\fR برای ادغام \fBR\fR و \fBX\fR در شاخه مهم به کار رفته است\&. این کامیت ممکن است اطلاعاتی درباره اینکه چرا تغییر \fBX\fR جایگزین تغییرات \fBA\fR و \fBB\fR شد در پیام کامیت خود داشته باشد\&. .PP \fB\-\-show\-pulls\fR .RS 4 علاوه بر کامیت‌های نمایش‌داده‌شده در تاریخچه پیش‌فرض، هر کامیت ادغامی را که نسبت به والد نخست خود TREESAME نیست اما نسبت به والد بعدی TREESAME است نمایش می‌دهد\&. .sp هنگامی که یک کامیت ادغام توسط \fB\-\-show\-pulls\fR گنجانده می‌شود، با ادغام به‌گونه‌ای رفتار می‌شود که گویی تغییر را از شاخه دیگری «کشیده» (pull) است\&. هنگام استفاده از \fB\-\-show\-pulls\fR در این مثال (و بدون گزینه‌های دیگر) گراف حاصل عبارت است از: .sp .if n \{\ .RS 4 .\} .nf I\-\-\-X\-\-\-R\-\-\-N .fi .if n \{\ .RE .\} .sp در اینجا، کامیت‌های ادغام \fBR\fR و \fBN\fR گنجانده شده‌اند زیرا آن‌ها به ترتیب کامیت‌های \fBX\fR و \fBR\fR را به شاخه پایه وارد کردند\&. این ادغام‌ها دلیلی هستند که کامیت‌های \fBA\fR و \fBB\fR در تاریخچه پیش‌فرض ظاهر نمی‌شوند\&. .sp هنگامی که \fB\-\-show\-pulls\fR همراه با \fB\-\-simplify\-merges\fR استفاده شود، گراف شامل تمام اطلاعات لازم خواهد بود: .sp .if n \{\ .RS 4 .\} .nf \&.\-A\-\-\-M\-\-\&. N / / \e / I B R \e / / \e / / `\-\-\-X\-\-\*(Aq .fi .if n \{\ .RE .\} .sp توجه داشته باشید از آنجا که \fBM\fR از \fBR\fR قابل دسترسی است، یال از \fBN\fR به \fBM\fR با ساده‌سازی حذف شد\&. با این حال، \fBN\fR همچنان به‌عنوان یک کامیت مهم در تاریخچه ظاهر می‌شود زیرا تغییر \fBR\fR را به شاخه اصلی «کشیده» است\&. .RE .sp گزینه \fB\-\-simplify\-by\-decoration\fR به شما امکان می‌دهد تنها نمای کلی از توپولوژی تاریخچه را با حذف کامیت‌هایی که توسط برچسب‌ها ارجاع داده نشده‌اند مشاهده کنید\&. کامیت‌ها در صورتی به‌عنوان !TREESAME علامت‌گذاری می‌شوند (به عبارت دیگر، پس از قوانین ساده‌سازی تاریخچه توضیح داده‌شده در بالا حفظ می‌شوند) که (۱) توسط برچسب‌ها ارجاع داده شده باشند، یا (۲) محتویات مسیرهای داده‌شده در خط فرمان را تغییر دهند\&. تمام کامیت‌های دیگر به‌عنوان TREESAME علامت‌گذاری می‌شوند (مشمول حذف از طریق ساده‌سازی)\&. .SS "ترتیب کامیت‌ها (Commit Ordering)" .sp به‌طور پیش‌فرض، کامیت‌ها به ترتیب معکوس زمانی نمایش داده می‌شوند\&. .PP \fB\-\-date\-order\fR .RS 4 هیچ والدی را پیش از نمایش تمام فرزندانش نشان نمی‌دهد، اما در غیر این صورت کامیت‌ها را به ترتیب برچسب زمان کامیت نمایش می‌دهد\&. .RE .PP \fB\-\-author\-date\-order\fR .RS 4 هیچ والدی را پیش از نمایش تمام فرزندانش نشان نمی‌دهد، اما در غیر این صورت کامیت‌ها را به ترتیب برچسب زمان نویسنده نمایش می‌دهد\&. .RE .PP \fB\-\-topo\-order\fR .RS 4 هیچ والدی را پیش از نمایش تمام فرزندانش نشان نمی‌دهد، و از نمایش درهم‌آمیخته کامیت‌ها در خطوط تاریخچه چندگانه جلوگیری می‌کند\&. .sp برای نمونه، در یک تاریخچه کامیت مانند این: .sp .if n \{\ .RS 4 .\} .nf \-\-\-1\-\-\-\-2\-\-\-\-4\-\-\-\-7 \e \e 3\-\-\-\-5\-\-\-\-6\-\-\-\-8\-\-\- .fi .if n \{\ .RE .\} .sp که در آن اعداد نشان‌دهنده ترتیب برچسب‌های زمان کامیت هستند، دستور \fBgit\fR \fBrev\-list\fR و دستورات مشابه همراه با \fB\-\-date\-order\fR کامیت‌ها را به ترتیب برچسب زمان نمایش می‌دهند: 8 7 6 5 4 3 2 1\&. .sp با \fB\-\-topo\-order\fR, آن‌ها به صورت 8 6 5 3 7 4 2 1 (یا 8 7 4 2 6 5 3 1) نمایش داده می‌شوند؛ برخی از کامیت‌های قدیمی‌تر قبل از کامیت‌های جدیدتر نشان داده می‌شوند تا از مخلوط شدن کامیت‌های دو مسیر توسعه موازی جلوگیری شود\&. .RE .PP \fB\-\-reverse\fR .RS 4 کامیت‌های انتخاب‌شده برای نمایش را (به بخش \fICommit Limiting\fR در بالا مراجعه کنید) به ترتیب معکوس خروجی می‌دهد\&. با \fB\-\-walk\-reflogs\fR قابل ترکیب نیست\&. .RE .SS "پیمایش شیء (Object Traversal)" .sp این گزینه‌ها بیشتر برای بسته‌بندی مخازن گیت هدف‌گذاری شده‌اند\&. .PP \fB\-\-no\-walk\fR[\fB=\fR(\fBsorted\fR|\fBunsorted\fR)] .RS 4 تنها کامیت‌های ارائه‌شده را نشان می‌دهد، اما نیاکان آن‌ها را پیمایش نمی‌کند\&. اگر محدوده‌ای مشخص شده باشد، این گزینه هیچ تأثیری ندارد\&. اگر آرگومان \fBunsorted\fR داده شود، کامیت‌ها به ترتیبی که در خط فرمان وارد شده‌اند نمایش می‌یابند\&. در غیر این صورت (اگر \fBsorted\fR یا هیچ آرگومانی داده نشده باشد)، کامیت‌ها به ترتیب معکوس زمانی بر اساس زمان کامیت نمایش داده می‌شوند\&. با \fB\-\-graph\fR قابل ترکیب نیست\&. .RE .PP \fB\-\-do\-walk\fR .RS 4 گزینه قبلی \fB\-\-no\-walk\fR را لغو می‌کند\&. .RE .SS "قالب‌بندی کامیت (Commit Formatting)" .PP \fB\-\-pretty\fR[\fB=\fR\fI\fR], \fB\-\-format=\fR\fI\fR .RS 4 محتوای لاگ‌های کامیت را با قالبی زیبا در قالب داده‌شده نمایش می‌دهد، که در آن \fI\fR می‌تواند یکی از موارد \fBoneline\fR, \fBshort\fR, \fBmedium\fR, \fBfull\fR, \fBfuller\fR, \fBreference\fR, \fBemail\fR, \fBraw\fR, \fBformat:\fR\fI\fR و \fBtformat:\fR\fI\fR باشد\&. هنگامی که \fI\fR هیچ‌یک از موارد بالا نباشد و حاوی \fB%\fR\fI\fR باشد، به‌گونه‌ای عمل می‌کند که گویی \fB\-\-pretty=tformat:\fR\fI\fR داده شده است\&. .sp برای جزئیات بیشتر درباره هر قالب، بخش «PRETTY FORMATS» را ببینید\&. هنگامی که بخش \fB=\fR\fI\fR حذف شود، مقدار پیش‌فرض \fBmedium\fR خواهد بود\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBنکته\fR .ps -1 .br می‌توانید قالب پیش‌فرض نمایش را در پیکربندی مخزن مشخص کنید (به \fBgit-config\fR(1) مراجعه کنید)\&. .sp .5v .RE .RE .PP \fB\-\-abbrev\-commit\fR .RS 4 به‌جای نمایش نام کامل هگزادسیمال ۴۰ بایتی شیء کامیت، پیشوندی را نشان می‌دهد که شیء را به‌طور منحصربه‌فرد نام‌گذاری کند\&. گزینه \fB\-\-abbrev=\fR\fI\fR (که در صورت نمایش خروجی diff، آن را نیز اصلاح می‌کند) می‌تواند برای تعیین حداقل طول پیشوند استفاده شود\&. .sp این گزینه باید خوانایی \fB\-\-pretty=oneline\fR را برای افرادی که از ترمینال‌های ۸۰ ستونی استفاده می‌کنند به مراتب بهتر کند\&. .RE .PP \fB\-\-no\-abbrev\-commit\fR .RS 4 نام کامل هگزادسیمال ۴۰ بایتی شیء کامیت را نمایش می‌دهد\&. این گزینه اثر \fB\-\-abbrev\-commit\fR را، چه صریح باشد و چه به‌طور ضمنی توسط گزینه‌های دیگر مانند \fB\-\-oneline\fR ایجاد شده باشد، خنثی می‌کند\&. همچنین متغیر \fBlog\&.abbrevCommit\fR را بازنویسی می‌نماید\&. .RE .PP \fB\-\-oneline\fR .RS 4 این گزینه یک حالت کوتاه‌نویسی برای استفاده همزمان از \fB\-\-pretty=oneline\fR و \fB\-\-abbrev\-commit\fR است\&. .RE .PP \fB\-\-encoding=\fR\fI\fR .RS 4 اشیای کامیت، کدگذاری نویسه‌های استفاده‌شده برای پیام لاگ را در هدر encoding خود ثبت می‌کنند؛ این گزینه می‌تواند به دستور بگوید پیام لاگ کامیت را با کدگذاری مورد نظر کاربر مجدداً کدگذاری کند\&. برای دستورات غیر زیرساختی (non-plumbing)، این مقدار به‌طور پیش‌فرض UTF\-8 است\&. توجه داشته باشید اگر یک شیء ادعا کند با \fBX\fR کدگذاری شده است و ما با \fBX\fR خروجی بدهیم، شیء را عیناً خروجی می‌دهیم؛ این بدان معنی است که توالی‌های نامعتبر در کامیت اصلی ممکن است به خروجی کپی شوند\&. مشابهاً، اگر تابع iconv(3) در تبدیل کامیت شکست بخورد، شیء اصلی را بدون اعلام خطا عیناً خروجی خواهیم داد\&. .RE .PP \fB\-\-expand\-tabs=\fR\fI\fR, \fB\-\-expand\-tabs\fR, \fB\-\-no\-expand\-tabs\fR .RS 4 پیش از نمایش پیام لاگ در خروجی، تب‌ها را گسترش می‌دهد (هر تب را با تعداد کافی فاصله جایگزین می‌کند تا به ستون نمایش بعدی که مضربی از \fI\fR است پر شود)\&. \fB\-\-expand\-tabs\fR حالت کوتاه‌نویسی برای \fB\-\-expand\-tabs=8\fR, و \fB\-\-no\-expand\-tabs\fR حالت کوتاه‌نویسی برای \fB\-\-expand\-tabs=0\fR است که گسترش تب‌ها را غیرفعال می‌کند\&. .sp به‌طور پیش‌فرض، تب‌ها در قالب‌های زیبایی که پیام لاگ را ۴ فاصله تورفتگی می‌دهند (یعنی \fBmedium\fR که پیش‌فرض است، \fBfull\fR, و \fBfuller\fR) گسترش می‌یابند\&. .RE .PP \fB\-\-notes\fR[\fB=\fR\fI\fR] .RS 4 هنگام نمایش پیام لاگ کامیت، یادداشت‌هایی را که کامیت را حاشیه‌نویسی می‌کنند (به \fBgit-notes\fR(1) مراجعه کنید) نشان می‌دهد\&. این رفتار پیش‌فرض برای دستورات \fBgit\fR \fBlog\fR, \fBgit\fR \fBshow\fR و \fBgit\fR \fBwhatchanged\fR است، در صورتی که هیچ گزینه \fB\-\-pretty\fR, \fB\-\-format\fR, یا \fB\-\-oneline\fR در خط فرمان داده نشده باشد\&. .sp به‌طور پیش‌فرض، یادداشت‌های نمایش‌داده‌شده از ارجاع‌های یادداشت فهرست‌شده در متغیرهای \fBcore\&.notesRef\fR و \fBnotes\&.displayRef\fR (یا بازنویسی‌های متغیرهای محیطی متناظر) برگرفته می‌شوند\&. برای جزئیات بیشتر به \fBgit-config\fR(1) مراجعه کنید\&. .sp با یک آرگومان اختیاری \fI\fR, از آن ارجاع برای یافتن یادداشت‌ها جهت نمایش استفاده می‌کند\&. ارجاع می‌تواند نام کامل ارجاع را هنگامی که با \fBrefs/notes/\fR آغاز می‌شود مشخص کند؛ هنگامی که با \fBnotes/\fR آغاز شود، پیشوند \fBrefs/\fR و در غیر این صورت \fBrefs/notes/\fR برای تشکیل نام کامل ارجاع اضافه می‌گردد\&. .sp می‌توان چندین گزینه \fB\-\-notes\fR را با هم ترکیب کرد تا مشخص شود چه یادداشت‌هایی نمایش داده می‌شوند\&. مثال‌ها: "\fB\-\-notes=foo\fR" تنها یادداشت‌های \fBrefs/notes/foo\fR را نشان می‌دهد؛ "\fB\-\-notes=foo\fR \fB\-\-notes\fR" هم یادداشت‌های "refs/notes/foo" و هم یادداشت‌های ارجاع(های) یادداشت پیش‌فرض را نشان می‌دهد\&. .RE .PP \fB\-\-no\-notes\fR .RS 4 یادداشت‌ها را نشان نمی‌دهد\&. این گزینه با بازنشانی فهرست ارجاع‌های یادداشت که یادداشت‌ها از آن‌ها نمایش داده می‌شوند، گزینه \fB\-\-notes\fR فوق را خنثی می‌کند\&. گزینه‌ها به ترتیبی که در خط فرمان داده شده‌اند تجزیه می‌شوند، بنابراین برای نمونه "\fB\-\-notes\fR \fB\-\-notes=foo\fR \fB\-\-no\-notes\fR \fB\-\-notes=bar\fR" تنها یادداشت‌های \fBrefs/notes/bar\fR را نشان خواهد داد\&. .RE .PP \fB\-\-show\-notes\-by\-default\fR .RS 4 یادداشت‌های پیش‌فرض را نشان می‌دهد مگر اینکه گزینه‌هایی برای نمایش یادداشت‌های خاص ارائه شده باشد\&. .RE .PP \fB\-\-show\-notes\fR[\fB=\fR\fI\fR], \fB\-\-standard\-notes\fR, \fB\-\-no\-standard\-notes\fR .RS 4 این گزینه‌ها منسوخ شده‌اند\&. به‌جای آن‌ها از گزینه‌های \fB\-\-notes\fR/\fB\-\-no\-notes\fR فوق استفاده کنید\&. .RE .PP \fB\-\-show\-signature\fR .RS 4 اعتبار شیء کامیت امضاشده را با ارسال امضا به \fBgpg\fR \fB\-\-verify\fR بررسی کرده و خروجی را نمایش می‌دهد\&. .RE .PP \fB\-\-relative\-date\fR .RS 4 مترادفی برای \fB\-\-date=relative\fR است\&. .RE .PP \fB\-\-date=\fR\fI\fR .RS 4 تنها برای تاریخ‌هایی که در قالب انسان‌خوان نمایش داده می‌شوند اعمال می‌شود، مانند زمانی که از \fB\-\-pretty\fR استفاده می‌شود\&. متغیر پیکربندی \fBlog\&.date\fR یک مقدار پیش‌فرض را برای گزینه \fB\-\-date\fR دستور log تعیین می‌کند\&. به‌طور پیش‌فرض، تاریخ‌ها در منطقه زمانی اصلی (یا کامیت‌کننده یا نویسنده) نمایش داده می‌شوند\&. اگر \fB\-local\fR به انتهای قالب اضافه شود (برای نمونه، \fBiso\-local\fR), منطقه زمانی محلی کاربر به‌جای آن استفاده می‌شود\&. .sp \fB\-\-date=relative\fR تاریخ‌ها را نسبت به زمان فعلی نشان می‌دهد، مانند «۲ ساعت پیش»\&. گزینه \fB\-local\fR هیچ تأثیری بر \fB\-\-date=relative\fR ندارد\&. .sp \fB\-\-date=local\fR یک نام مستعار برای \fB\-\-date=default\-local\fR است\&. .sp \fB\-\-date=iso\fR (یا \fB\-\-date=iso8601\fR) برچسب‌های زمان را در قالبی شبیه به ISO 8601 نمایش می‌دهد\&. تفاوت‌ها با قالب سخت‌گیرانه ISO 8601 عبارتند از: .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 .\} یک فاصله بین زمان و منطقه زمانی .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} عدم وجود دو نقطه بین ساعت و دقیقه منطقه زمانی .RE .sp \fB\-\-date=iso\-strict\fR (یا \fB\-\-date=iso8601\-strict\fR) برچسب‌های زمان را در قالب دقیق و سخت‌گیرانه ISO 8601 نمایش می‌دهد\&. .sp \fB\-\-date=rfc\fR (یا \fB\-\-date=rfc2822\fR) برچسب‌های زمان را در قالب RFC 2822 نشان می‌دهد که اغلب در پیام‌های ایمیل یافت می‌شود\&. .sp \fB\-\-date=short\fR تنها تاریخ را بدون زمان، در قالب \fBYYYY\-MM\-DD\fR نمایش می‌دهد\&. .sp \fB\-\-date=raw\fR تاریخ را به‌صورت ثانیه‌های سپری‌شده از مبدأ یونیکس (1970\-01\-01 00:00:00 UTC) و به دنبال آن یک فاصله، و سپس منطقه زمانی را به‌عنوان یک آفست از UTC (یک \fB+\fR یا \fB\-\fR همراه با چهار رقم؛ دو رقم اول ساعت و دو رقم دوم دقیقه) نشان می‌دهد\&. یعنی به‌گونه‌ای که گویی برچسب زمان با \fBstrftime\fR("%s \fB%z\fR") قالب‌بندی شده است\&. توجه داشته باشید که گزینه \fB\-local\fR بر مقدار ثانیه‌های مبدأ (که همیشه بر حسب UTC سنجیده می‌شود) تأثیری ندارد، اما مقدار منطقه زمانی همراه آن را تغییر می‌دهد\&. .sp \fB\-\-date=human\fR اگر منطقه زمانی با منطقه زمانی فعلی مطابقت نداشته باشد آن را نمایش می‌دهد، و اگر مطابقت داشته باشد کل تاریخ را چاپ نمی‌کند (یعنی از چاپ سال برای تاریخ‌های «امسال» صرف‌نظر می‌کند، و همچنین کل تاریخ را در صورتی که مربوط به چند روز گذشته باشد حذف کرده و صرفاً روز هفته را بیان می‌کند)\&. برای تاریخ‌های قدیمی‌تر، ساعت و دقیقه نیز حذف می‌شوند\&. .sp \fB\-\-date=unix\fR تاریخ را به‌عنوان برچسب زمان مبدأ یونیکس (ثانیه‌ها از سال ۱۹۷۰) نشان می‌دهد\&. همانند \fB\-\-raw\fR, این مقدار همیشه بر حسب UTC است و بنابراین \fB\-local\fR هیچ تأثیری ندارد\&. .sp \fB\-\-date=format:\fR\fI\fR مقدار \fI\fR را به تابع \fBstrftime\fR سیستم شما ارسال می‌کند، به استثنای \fB%s\fR, \fB%z\fR, و \fB%Z\fR که به‌صورت داخلی مدیریت می‌شوند\&. از \fB\-\-date=format:%c\fR برای نمایش تاریخ در قالب ترجیحی زبان/محیط (locale) سیستم خود استفاده کنید\&. برای فهرست کامل جانگهدارنده‌های قالب به راهنمای \fBstrftime\fR(3) مراجعه فرمایید\&. هنگام استفاده از \fB\-local\fR, نحو صحیح به‌صورت \fB\-\-date=format\-local:\fR\fI\fR است\&. .sp \fB\-\-date=default\fR قالب پیش‌فرض است و بر اساس خروجی ctime(3) عمل می‌کند\&. این گزینه یک خط منفرد شامل سه حرف روز هفته، سه حرف نام ماه، روز ماه، ساعت-دقیقه-ثانیه در قالب "HH:MM:SS" و به دنبال آن سال ۴ رقمی، به اضافه اطلاعات منطقه زمانی را نشان می‌دهد، مگر اینکه از منطقه زمانی محلی استفاده شده باشد؛ برای نمونه: \fBThu\fR \fBJan\fR \fB1\fR \fB00:00:00\fR \fB1970\fR \fB+0000\fR\&. .RE .PP \fB\-\-parents\fR .RS 4 والدین کامیت را نیز چاپ می‌کند (به فرم "commit parent\&...")\&. همچنین بازنویسی والدین را فعال می‌سازد، به بخش \fIHistory Simplification\fR در بالا مراجعه کنید\&. .RE .PP \fB\-\-children\fR .RS 4 فرزندان کامیت را نیز چاپ می‌کند (به فرم "commit child\&...")\&. همچنین بازنویسی والدین را فعال می‌سازد، به بخش \fIHistory Simplification\fR در بالا مراجعه کنید\&. .RE .PP \fB\-\-left\-right\fR .RS 4 مشخص می‌کند که یک کامیت از کدام سمت تفاضل متقارن قابل دسترسی است\&. کامیت‌های سمت چپ با پیشوند < و کامیت‌های سمت راست با > علامت‌گذاری می‌شوند\&. اگر با \fB\-\-boundary\fR ترکیب شود، آن کامیت‌ها با پیشوند \fB\-\fR مشخص می‌گردند\&. .sp برای نمونه، اگر چنین توپولوژی داشته باشید: .sp .if n \{\ .RS 4 .\} .nf y\-\-\-b\-\-\-b branch B / \e / / \&. / / \e o\-\-\-x\-\-\-a\-\-\-a branch A .fi .if n \{\ .RE .\} .sp خروجی شبیه به این دریافت خواهید کرد: .sp .if n \{\ .RS 4 .\} .nf $ git rev\-list \-\-left\-right \-\-boundary \-\-pretty=oneline A\&.\&.\&.B >bbbbbbb\&.\&.\&. 3rd on b >bbbbbbb\&.\&.\&. 2nd on b \fR] .RS 4 هنگامی که از \fB\-\-graph\fR استفاده نمی‌شود، تمام شاخه‌های تاریخچه مسطح (flatten) می‌شوند که می‌تواند تشخیص اینکه دو کامیت متوالی متعلق به یک شاخه خطی نیستند را دشوار سازد\&. این گزینه در چنین حالتی یک مانع (barrier) میان آن‌ها قرار می‌دهد\&. اگر \fI\fR مشخص شده باشد، این رشته به‌جای رشته پیش‌فرض نمایش داده می‌شود\&. .RE .PP \fB\-\-graph\-lane\-limit=\fR\fI\fR .RS 4 هنگامی که از \fB\-\-graph\fR استفاده می‌شود، تعداد خطوط (lanes) گراف را برای نمایش محدود می‌کند\&. خطوط بیش از حد مجاز با علامت کوتاه‌سازی \fI~\fR جایگزین می‌شوند\&. به‌طور پیش‌فرض روی 0 (بدون محدودیت) تنظیم شده است؛ مقادیر صفر و منفی نادیده گرفته شده و به‌عنوان بدون محدودیت در نظر گرفته می‌شوند\&. .RE .SH "قالب‌های سفارشی (PRETTY FORMATS)" .sp اگر کامیت یک ادغام باشد و چنانچه قالب سفارشی یکی از موارد \fBoneline\fR, \fBemail\fR یا \fBraw\fR نباشد، یک خط اضافی پیش از خط \fBAuthor:\fR درج می‌شود\&. این خط با "Merge: " آغاز شده و هش‌های کامیت‌های نیاکان با فاصله چاپ می‌شوند\&. توجه داشته باشید اگر نمای خود از تاریخچه را محدود کرده باشید (برای نمونه تنها به تغییرات مربوط به یک دایرکتوری یا فایل خاص علاقه‌مند باشید)، کامیت‌های فهرست‌شده لزوماً همان فهرست کامیت‌های والد \fIمستقیم\fR نیستند\&. .sp چندین قالب توکار وجود دارد، و شما می‌توانید قالب‌های بیشتری را با تنظیم گزینه پیکربندی pretty\&. روی یک نام قالب دیگر یا یک رشته \fBformat:\fR مطابق توضیحات زیر تعریف کنید (به \fBgit-config\fR(1) مراجعه کنید)\&. جزئیات قالب‌های توکار به شرح زیر است: .PP \fBoneline\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf \fI\fR \fI\fR .fi .if n \{\ .RE .\} .sp این قالب به‌گونه‌ای طراحی شده است که تا حد امکان فشرده باشد\&. .RE .PP \fBshort\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf \fBcommit\fR \fI\fR \fBAuthor:\fR \fI\fR \fI\fR .fi .if n \{\ .RE .\} .sp .RE .PP \fBmedium\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf \fBcommit\fR \fI\fR \fBAuthor:\fR \fI\fR \fBDate:\fR \fI\fR \fI\fR \fI\fR .fi .if n \{\ .RE .\} .sp .RE .PP \fBfull\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf \fBcommit\fR \fI\fR \fBAuthor:\fR \fI\fR \fBCommit:\fR \fI\fR \fI\fR \fI\fR .fi .if n \{\ .RE .\} .sp .RE .PP \fBfuller\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf \fBcommit\fR \fI\fR \fBAuthor:\fR \fI\fR \fBAuthorDate:\fR \fI\fR \fBCommit:\fR \fI\fR \fBCommitDate:\fR \fI\fR \fI\fR \fI\fR .fi .if n \{\ .RE .\} .sp .RE .PP \fBreference\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf \fI\fR (\fI\fR\fB,\fR \fI\fR) .fi .if n \{\ .RE .\} .sp این قالب برای ارجاع به یک کامیت دیگر در پیام کامیت استفاده می‌شود و مشابه \fB\-\-pretty=\*(Aqformat:%C(auto)%h (%s, %ad)\*(Aq\fR است\&. به‌طور پیش‌فرض، تاریخ با \fB\-\-date=short\fR قالب‌بندی می‌شود مگر اینکه گزینه \fB\-\-date\fR دیگری صراحتاً مشخص شده باشد\&. همانند هر \fBformat:\fR دارای جانگهدارنده‌های قالب، خروجی آن تحت تأثیر گزینه‌های دیگری مانند \fB\-\-decorate\fR و \fB\-\-walk\-reflogs\fR قرار نمی‌گیرد\&. .RE .PP \fBemail\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf \fBFrom\fR \fI\fR \fI\fR \fBFrom:\fR \fI\fR \fBDate:\fR \fI\fR \fBSubject:\fR [\fBPATCH\fR] \fI\fR \fI\fR .fi .if n \{\ .RE .\} .sp .RE .PP \fBmboxrd\fR .RS 4 مشابه \fBemail\fR است، اما خطوطی در پیام کامیت که با "From " شروع می‌شوند (با صفر یا چند علامت ">" در ابتدا) با ">" نقل‌قول می‌شوند تا به‌عنوان شروع یک کامیت جدید اشتباه گرفته نشوند\&. .RE .PP \fBraw\fR .RS 4 قالب \fBraw\fR کل کامیت را دقیقاً همان‌گونه که در شیء کامیت ذخیره شده است نشان می‌دهد\&. به‌ویژه، هش‌ها صرف‌نظر از اینکه از \fB\-\-abbrev\fR یا \fB\-\-no\-abbrev\fR استفاده شده باشد، به‌طور کامل نمایش داده می‌شوند، و اطلاعات \fIparents\fR کامیت‌های والد واقعی را بدون در نظر گرفتن پیوندها (grafts) یا ساده‌سازی تاریخچه نشان می‌دهد\&. توجه داشته باشید که این قالب بر نحوه نمایش کامیت‌ها تأثیر می‌گذارد، اما بر نحوه نمایش diff (برای نمونه با \fBgit\fR \fBlog\fR \fB\-\-raw\fR) تأثیری ندارد\&. برای دریافت نام‌های کامل اشیاء در قالب تفاوت خام، از \fB\-\-no\-abbrev\fR استفاده کنید\&. .RE .PP \fBformat:\fR\fI\fR .RS 4 قالب \fBformat:\fR\fI\fR به شما امکان می‌دهد اطلاعاتی را که مایل به نمایش آن هستید مشخص نمایید\&. عملکرد آن تا حدودی شبیه قالب printf است، با این استثنای قابل توجه که خط جدید را با \fB%n\fR به‌جای \fB\en\fR دریافت می‌کنید\&. .sp برای نمونه، \fIformat:"The author of %h was %an, %ar%nThe title was >>%s<<%n"\fR خروجی شبیه به این نمایش می‌دهد: .sp .if n \{\ .RS 4 .\} .nf The author of fe6e0ee was Junio C Hamano, 23 hours ago The title was >>t4119: test autocomputing \-p for traditional diff input\&.<< .fi .if n \{\ .RE .\} .sp جانگهدارنده‌ها (placeholders) عبارتند از: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} جانگهدارنده‌هایی که به یک نویسه لفظی (literal) منفرد تبدیل می‌شوند: .PP \fB%n\fR .RS 4 خط جدید (newline) .RE .PP \fB%%\fR .RS 4 یک علامت \fB%\fR خام .RE .PP \fB%x00\fR .RS 4 \fB%x\fR به همراه دو رقم هگزادسیمال با بایتی به ارزش آن ارقام هگزادسیمال جایگزین می‌شود (در ادامه این سند، این مورد را «کد قالب‌بندی لفظی» می‌نامیم)\&. .RE .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} جانگهدارنده‌هایی که بر قالب‌بندی جانگهدارنده‌های بعدی تأثیر می‌گذارند: .PP \fB%Cred\fR .RS 4 تغییر رنگ به قرمز .RE .PP \fB%Cgreen\fR .RS 4 تغییر رنگ به سبز .RE .PP \fB%Cblue\fR .RS 4 تغییر رنگ به آبی .RE .PP \fB%Creset\fR .RS 4 بازنشانی رنگ .RE .PP \fB%C(\fR\fI\fR\fB)\fR .RS 4 مشخصات رنگ، مطابق توضیحات زیر عنوان Values در بخش "CONFIGURATION FILE" از \fBgit-config\fR(1)\&. به‌طور پیش‌فرض، رنگ‌ها تنها در صورتی نمایش داده می‌شوند که برای خروجی لاگ فعال شده باشند (توسط \fBcolor\&.diff\fR, \fBcolor\&.ui\fR, یا \fB\-\-color\fR, و با رعایت تنظیمات \fBauto\fR موارد پیشین در صورت ارسال به ترمینال)\&. \fB%C(auto,\fR\fI\fR\fB)\fR به‌عنوان یک مترادف تاریخی برای مقدار پیش‌فرض پذیرفته می‌شود (برای نمونه، \fB%C(auto,red)\fR)\&. مشخص کردن \fB%C(always,\fR\fI\fR\fB)\fR رنگ‌ها را حتی در صورتی که رنگ به نحو دیگری فعال نشده باشد نشان می‌دهد (اگرچه استفاده از \fB\-\-color=always\fR را برای فعال‌سازی رنگ برای کل خروجی، شامل این قالب و هر چیز دیگری که گیت ممکن است رنگ‌آمیزی کند، در نظر بگیرید)\&. عبارت \fBauto\fR به تنهایی (یعنی \fB%C(auto)\fR) رنگ‌آمیزی خودکار را روی جانگهدارنده‌های بعدی فعال می‌کند تا زمانی که رنگ مجدداً تغییر یابد\&. .RE .PP \fB%m\fR .RS 4 علامت چپ (<)، راست (>) یا مرز (\fB\-\fR) .RE .PP \fB%w(\fR[\fI\fR[\fB,\fR\fI\fR[\fB,\fR\fI\fR]]]\fB)\fR .RS 4 تغییر پیچش خط (line wrapping)، مشابه گزینه \fB\-w\fR از \fBgit-shortlog\fR(1)\&. .RE .PP \fB%<(\fR\fI\fR[\fB,\fR(\fBtrunc\fR|\fBltrunc\fR|\fBmtrunc\fR)]\fB)\fR .RS 4 باعث می‌شود جانگهدارنده بعدی حداقل N پهنای ستون را اشغال کند و در صورت لزوم فاصله‌ها را در سمت راست پر نماید\&. در صورت تمایل، اگر خروجی طولانی‌تر از \fI\fR ستون باشد، آن را با سه‌نقطه (\&.\&.) در سمت چپ (ltrunc) \fB\&.\&.\fR\fBft\fR, در وسط (mtrunc) \fBmi\fR\fB\&.\&.\fR\fBle\fR, یا در انتها (trunc) \fBrig\&.\fR\&. کوتاه می‌کند\&. نکته ۱: کوتاه‌سازی تنها با \fI\fR >= 2 به درستی کار می‌کند\&. نکته ۲: فاصله‌های اطراف مقادیر \fI\fR و \fI\fR (در ادامه ببینید) اختیاری هستند\&. نکته ۳: ایموجی‌ها و سایر نویسه‌های پهن دو ستون نمایش را اشغال می‌کنند که ممکن است از مرزهای ستون فراتر رود\&. نکته ۴: علائم ترکیبی نویسه‌های تفکیک‌شده ممکن است در مرزهای لایه پرکننده (padding) جابه‌جا شوند\&. .RE .PP \fB%<|(\fR\fI\fR \fB)\fR .RS 4 باعث می‌شود جانگهدارنده بعدی حداقل تا \fI\fR\-امین ستون نمایش امتداد یابد و در صورت لزوم فاصله‌ها را در سمت راست پر کند\&. از مقادیر منفی \fI\fR برای موقعیت ستون‌های اندازه‌گیری‌شده از لبه سمت راست پنجره ترمینال استفاده کنید\&. .RE .PP \fB%>(\fR\fI\fR\fB)\fR, \fB%>|(\fR\fI\fR\fB)\fR .RS 4 به ترتیب مشابه \fB%<(\fR\fI\fR\fB)\fR و \fB%<|(\fR\fI\fR\fB)\fR هستند، اما فاصله‌ها را در سمت چپ پر می‌کنند\&. .RE .PP \fB%>>(\fR\fI\fR\fB)\fR, \fB%>>|(\fR\fI\fR\fB)\fR .RS 4 به ترتیب مشابه \fB%>(\fR\fI\fR\fB)\fR و \fB%>|(\fR\fI\fR\fB)\fR هستند، با این تفاوت که اگر جانگهدارنده بعدی فضایی بیش از مقدار داده‌شده اشغال کند و در سمت چپ آن فاصله وجود داشته باشد، از آن فاصله‌ها استفاده می‌کند\&. .RE .PP \fB%><(\fR\fI\fR\fB)\fR, \fB%><|(\fR\fI\fR\fB)\fR .RS 4 به ترتیب مشابه \fB%<(\fR\fI\fR\fB)\fR و \fB%<|(\fR\fI\fR\fB)\fR هستند، اما در هر دو طرف فاصله پر می‌کنند (یعنی متن وسط‌چین می‌شود)\&. .RE .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} جانگهدارنده‌هایی که به اطلاعات استخراج‌شده از کامیت بسط می‌یابند: .PP \fB%H\fR .RS 4 هش کامیت .RE .PP \fB%h\fR .RS 4 هش کوتاه‌شده کامیت .RE .PP \fB%T\fR .RS 4 هش درخت .RE .PP \fB%t\fR .RS 4 هش کوتاه‌شده درخت .RE .PP \fB%P\fR .RS 4 هش‌های والدین .RE .PP \fB%p\fR .RS 4 هش‌های کوتاه‌شده والدین .RE .PP \fB%an\fR .RS 4 نام نویسنده .RE .PP \fB%aN\fR .RS 4 نام نویسنده (با رعایت \&.mailmap، به \fBgit-shortlog\fR(1) یا \fBgit-blame\fR(1) مراجعه کنید) .RE .PP \fB%ae\fR .RS 4 ایمیل نویسنده .RE .PP \fB%aE\fR .RS 4 ایمیل نویسنده (با رعایت \&.mailmap، به \fBgit-shortlog\fR(1) یا \fBgit-blame\fR(1) مراجعه کنید) .RE .PP \fB%al\fR .RS 4 بخش محلی ایمیل نویسنده (بخش پیش از علامت \fB@\fR) .RE .PP \fB%aL\fR .RS 4 بخش محلی نویسنده (به \fB%al\fR مراجعه فرمایید) با رعایت \&.mailmap (به \fBgit-shortlog\fR(1) یا \fBgit-blame\fR(1) مراجعه کنید) .RE .PP \fB%ad\fR .RS 4 تاریخ نویسنده (قالب از گزینه \-\-date= پیروی می‌کند) .RE .PP \fB%aD\fR .RS 4 تاریخ نویسنده، به سبک RFC2822 .RE .PP \fB%ar\fR .RS 4 تاریخ نویسنده، نسبی .RE .PP \fB%at\fR .RS 4 تاریخ نویسنده، برچسب زمان UNIX .RE .PP \fB%ai\fR .RS 4 تاریخ نویسنده، قالب شبیه به ISO 8601 .RE .PP \fB%aI\fR .RS 4 تاریخ نویسنده، قالب سخت‌گیرانه ISO 8601 .RE .PP \fB%as\fR .RS 4 تاریخ نویسنده، قالب کوتاه (\fBYYYY\-MM\-DD\fR) .RE .PP \fB%ah\fR .RS 4 تاریخ نویسنده، سبک انسان‌خوان (مانند گزینه \fB\-\-date=human\fR از \fBgit-rev-list\fR(1)) .RE .PP \fB%cn\fR .RS 4 نام کامیت‌کننده (ثبت‌کننده) .RE .PP \fB%cN\fR .RS 4 نام کامیت‌کننده (با رعایت \&.mailmap، به \fBgit-shortlog\fR(1) یا \fBgit-blame\fR(1) مراجعه کنید) .RE .PP \fB%ce\fR .RS 4 ایمیل کامیت‌کننده .RE .PP \fB%cE\fR .RS 4 ایمیل کامیت‌کننده (با رعایت \&.mailmap، به \fBgit-shortlog\fR(1) یا \fBgit-blame\fR(1) مراجعه کنید) .RE .PP \fB%cl\fR .RS 4 بخش محلی ایمیل کامیت‌کننده (بخش پیش از علامت \fB@\fR) .RE .PP \fB%cL\fR .RS 4 بخش محلی کامیت‌کننده (به \fB%cl\fR مراجعه کنید) با رعایت \&.mailmap (به \fBgit-shortlog\fR(1) یا \fBgit-blame\fR(1) مراجعه فرمایید) .RE .PP \fB%cd\fR .RS 4 تاریخ کامیت‌کننده (قالب از گزینه \-\-date= تبعیت می‌کند) .RE .PP \fB%cD\fR .RS 4 تاریخ کامیت‌کننده، به سبک RFC2822 .RE .PP \fB%cr\fR .RS 4 تاریخ کامیت‌کننده، نسبی .RE .PP \fB%ct\fR .RS 4 تاریخ کامیت‌کننده، برچسب زمان UNIX .RE .PP \fB%ci\fR .RS 4 تاریخ کامیت‌کننده، قالبی شبیه به ISO 8601 .RE .PP \fB%cI\fR .RS 4 تاریخ کامیت‌کننده، قالب سخت‌گیرانه ISO 8601 .RE .PP \fB%cs\fR .RS 4 تاریخ کامیت‌کننده، قالب کوتاه (\fBYYYY\-MM\-DD\fR) .RE .PP \fB%ch\fR .RS 4 تاریخ کامیت‌کننده، سبک انسان‌خوان (مانند گزینه \fB\-\-date=human\fR از \fBgit-rev-list\fR(1)) .RE .PP \fB%d\fR .RS 4 نام‌های ارجاع، مانند گزینه \-\-decorate از \fBgit-log\fR(1) .RE .PP \fB%D\fR .RS 4 نام‌های ارجاع بدون بسته‌بندی در " (" و ")" .RE .PP \fB%(count)\fR .RS 4 شماره یک وصله در یک سری وصله\&. تنها در \fB\-\-commit\-list\-format\fR در \fBformat\-patch\fR استفاده می‌شود\&. .RE .PP \fB%(total)\fR .RS 4 تعداد کل وصله‌ها در یک سری وصله\&. تنها در \fB\-\-commit\-list\-format\fR در \fBformat\-patch\fR استفاده می‌شود\&. .RE .PP \fB%(decorate\fR[\fB:\fR\fI