'\" t
.\" Title: git-blame
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
.\" Date: 2026-06-29
.\" Manual: Git Manual
.\" Source: Git 2.55.0
.\" Language: Persian
.\"
.TH "GIT\-BLAME" "1" "2026\-06\-29" "Git 2\&.55\&.0" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "نام (NAME)"
git-blame \- نمایش اینکه کدام ویرایش و نویسنده آخرین بار هر سطر از یک فایل را تغییر داده است
.SH "خلاصه دستور (SYNOPSIS)"
.sp
.nf
\fBgit\fR \fBblame\fR [\fB\-c\fR] [\fB\-b\fR] [\fB\-l\fR] [\fB\-\-root\fR] [\fB\-t\fR] [\fB\-f\fR] [\fB\-n\fR] [\fB\-s\fR] [\fB\-e\fR] [\fB\-p\fR] [\fB\-w\fR] [\fB\-\-incremental\fR]
[\fB\-L\fR \fI\fR] [\fB\-S\fR \fI\fR] [\fB\-M\fR] [\fB\-C\fR] [\fB\-C\fR] [\fB\-C\fR] [\fB\-\-since=\fR\fI\fR]
[\fB\-\-ignore\-rev\fR \fI\fR] [\fB\-\-ignore\-revs\-file\fR \fI\fR]
[\fB\-\-color\-lines\fR] [\fB\-\-color\-by\-age\fR] [\fB\-\-progress\fR] [\fB\-\-abbrev=\fR\fI\fR]
[ \fB\-\-contents\fR \fI\fR ] [\fI\fR | \fB\-\-reverse\fR \fI\fR\fB\&.\&.\fR\fI\fR] [\fB\-\-\fR] \fI\fR
.fi
.sp
.SH "توضیحات (DESCRIPTION)"
.sp
هر سطر در فایل دادهشده را با اطلاعات مربوط به ویرایشی که آخرین بار آن سطر را تغییر داده است، حاشیهنویسی میکند\&. همچنین به صورت اختیاری میتواند حاشیهنویسی را از ویرایش مشخصشده آغاز کند\&.
.sp
هنگامی که یک یا چند بار مشخص شود، گزینه
\fB\-L\fR
حاشیهنویسی را به سطرهای درخواستی محدود میکند\&.
.sp
مبدأ سطرها در تغییر نامهای کامل فایل به طور خودکار دنبال میشود (در حال حاضر گزینهای برای خاموش کردن دنبال کردن تغییر نام وجود ندارد)\&. برای دنبال کردن سطرهایی که از یک فایل به فایل دیگر منتقل شدهاند، یا سطرهایی که از فایلی دیگر کپی و چسبانده شدهاند و غیره، گزینههای
\fB\-C\fR
و
\fB\-M\fR
را ببینید\&.
.sp
گزارش چیزی درباره سطرهایی که حذف شده یا جایگزین شدهاند به شما نمیگوید؛ لازم است از ابزاری مانند
\fBgit\fR \fBdiff\fR
یا رابط «pickaxe» که به اختصار در بند بعدی آمده است استفاده کنید\&.
.sp
جدا از پشتیبانی حاشیهنویسی فایل، گیت همچنین از جستجو در تاریخچه توسعه برای یافتن زمانی که یک قطعه کد در یک تغییر رخ داده است، پشتیبانی میکند\&. این امر امکان ردیابی زمان اضافه شدن یک قطعه کد به یک فایل، جابجایی یا کپی شدن آن میان فایلها، و در نهایت حذف یا جایگزین شدن آن را فراهم میسازد\&. این کار با جستجوی یک رشته متنی در diff انجام میشود\&. یک مثال کوچک از رابط pickaxe که به دنبال
\fBblame_usage\fR
میگردد:
.sp
.if n \{\
.RS 4
.\}
.nf
$ git log \-\-pretty=oneline \-S\*(Aqblame_usage\*(Aq
5040f17eba15504bad66b14a645bddd9b015ebb7 blame \-S
ea4c7f9bf69e781dd0cd88d2bccb2bf5cc15c9a7 git\-blame: Make the output
.fi
.if n \{\
.RE
.\}
.sp
.SH "گزینهها (OPTIONS)"
.PP
\fB\-b\fR
.RS 4
برای کامیتهای مرزی (boundary commits) یک SHA\-1 خالی نشان میدهد\&. این مورد همچنین از طریق گزینه پیکربندی
\fBblame\&.blankBoundary\fR
قابل کنترل است\&.
.RE
.PP
\fB\-\-root\fR
.RS 4
با کامیتهای ریشه به عنوان مرز رفتار نمیکند\&. این مورد همچنین از طریق گزینه پیکربندی
\fBblame\&.showRoot\fR
قابل کنترل است\&.
.RE
.PP
\fB\-\-show\-stats\fR
.RS 4
آمار اضافی را در پایان خروجی blame لحاظ میکند\&.
.RE
.PP
\fB\-L\fR \fI\fR\fB,\fR\fI\fR, \fB\-L\fR \fB:\fR\fI\fR
.RS 4
تنها محدوده خطوط مشخصشده توسط
\fI\fR\fB,\fR\fI\fR،
یا با عبارت باقاعده نام تابع
\fI\fR
را حاشیهنویسی میکند\&. میتواند چندین بار مشخص شود\&. محدودههای دارای همپوشانی مجاز هستند\&.
.sp
\fI\fR
و
\fI\fR
اختیاری هستند\&.
\fB\-L\fR
\fI\fR
یا
\fB\-L\fR
\fI\fR\fB,\fR
از
\fI\fR
تا انتهای فایل را در بر میگیرد\&.
\fB\-L\fR
\fB,\fR\fI\fR
از ابتدای فایل تا
\fI\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
یک عدد باشد، شماره خط مطلق را مشخص میکند (شمارش خطوط از ۱ آغاز میشود)\&.
.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
این قالب از اولین خطی که با
\fI\fR
دادهشده بر اساس POSIX مطابقت داشته باشد استفاده میکند\&. اگر
\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
داده شود، یک عبارت باقاعده است که محدوده را از اولین خط funcname که با
\fI\fR
مطابقت دارد تا خط funcname بعدی نشان میدهد\&.
\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
\fB\-l\fR
.RS 4
نمایش ویرایش (rev) طولانی (پیشفرض: غیرفعال)\&.
.RE
.PP
\fB\-t\fR
.RS 4
نمایش برچسب زمانی خام (پیشفرض: غیرفعال)\&.
.RE
.PP
\fB\-S\fR \fI\fR
.RS 4
استفاده از ویرایشهای موجود در
\fI\fR
به جای فراخوانی
\fBgit-rev-list\fR(1)\&.
.RE
.PP
\fB\-\-reverse\fR \fI\fR\fB\&.\&.\fR\fI\fR
.RS 4
پیمایش تاریخچه به سمت جلو به جای عقب\&. به جای نمایش ویرایشی که یک سطر در آن ظاهر شده است، آخرین ویرایشی که سطر در آن وجود داشته را نشان میدهد\&. این به محدودهای از ویرایشها مانند
\fI\fR\fB\&.\&.\fR\fI\fR
نیاز دارد که در آن مسیر مورد بررسی در
\fI\fR
وجود داشته باشد\&.
\fBgit\fR
\fBblame\fR
\fB\-\-reverse\fR
\fI\fR
برای راحتی به عنوان
\fBgit\fR
\fBblame\fR
\fB\-\-reverse\fR
\fI\fR\fB\&.\&.\fR\fBHEAD\fR
در نظر گرفته میشود\&.
.RE
.PP
\fB\-\-first\-parent\fR
.RS 4
هنگام برخورد با یک کامیت ادغام (merge commit)، تنها اولین کامیت والد را دنبال میکند\&. از این گزینه میتوان برای تعیین اینکه چه زمانی یک سطر به یک شاخه یکپارچهسازی خاص اضافه شده است، به جای اینکه چه زمانی به کل تاریخچه اضافه شده است، استفاده کرد\&.
.RE
.PP
\fB\-p\fR, \fB\-\-porcelain\fR
.RS 4
نمایش با قالبی طراحیشده برای استفاده ماشین (پردازش خودکار)\&.
.RE
.PP
\fB\-\-line\-porcelain\fR
.RS 4
نمایش در قالب پورسلین، اما با خروجی اطلاعات کامیت برای هر سطر، نه فقط بار اولی که به یک کامیت ارجاع داده میشود\&. مستلزم
\fB\-\-porcelain\fR
است\&.
.RE
.PP
\fB\-\-incremental\fR
.RS 4
نمایش نتایج به صورت افزایشی در قالبی طراحیشده برای استفاده ماشین\&.
.RE
.PP
\fB\-\-encoding=\fR\fI\fR
.RS 4
کدگذاری مورد استفاده برای خروجی نامهای نویسندگان و خلاصههای کامیت را مشخص میکند\&. تنظیم آن روی
\fBnone\fR
باعث میشود blame دادهها را تبدیلنشده در خروجی قرار دهد\&. برای اطلاعات بیشتر، بحث مربوط به کدگذاری را در صفحه راهنمای
\fBgit-log\fR(1)
ببینید\&.
.RE
.PP
\fB\-\-contents\fR \fI\fR
.RS 4
حاشیهنویسی با استفاده از محتویات
\fI\fR،
با شروع از
\fI\fR
در صورت مشخص بودن، و در غیر این صورت از
\fBHEAD\fR\&.
میتوانید
\fB\-\fR
را مشخص کنید تا دستور محتویات فایل را از ورودی استاندارد بخواند\&.
.RE
.PP
\fB\-\-date\fR \fI\fR
.RS 4
قالب مورد استفاده برای نمایش تاریخها را مشخص میکند\&. اگر
\fB\-\-date\fR
ارائه نشود، مقدار متغیر پیکربندی
\fBblame\&.date\fR
استفاده میشود\&. اگر متغیر پیکربندی
\fBblame\&.date\fR
نیز تنظیم نشده باشد، قالب iso به کار میرود\&. برای مقادیر پشتیبانیشده، بحث گزینه
\fB\-\-date\fR
را در
\fBgit-log\fR(1)
ببینید\&.
.RE
.PP
\fB\-\-progress\fR, \fB\-\-no\-progress\fR
.RS 4
فعالسازی گزارش پیشرفت روی جریان خطای استاندارد حتی در صورتی که به یک ترمینال متصل نباشد\&. به طور پیشفرض، وضعیت پیشرفت تنها زمانی گزارش میشود که به ترمینال متصل باشد\&. شما نمیتوانید
\fB\-\-progress\fR
را همراه با
\fB\-\-porcelain\fR
یا
\fB\-\-incremental\fR
استفاده کنید\&.
.RE
.PP
\fB\-M\fR[\fI\fR]
.RS 4
تشخیص سطرهای منتقلشده یا کپیشده در داخل یک فایل\&. هنگامی که یک کامیت بلوکی از سطرها را جابجا یا کپی میکند (برای مثال فایل اصلی دارای
\fIA\fR
و سپس
\fIB\fR
است، و کامیت آن را به
\fIB\fR
و سپس
\fIA\fR
تغییر میدهد)، الگوریتم سنتی
\fBblame\fR
تنها نیمی از جابجایی را متوجه میشود و معمولاً سطرهایی که به بالا منتقل شدهاند (یعنی
\fIB\fR)
را به والد منتسب میکند و سطرهایی که به پایین منتقل شدهاند (یعنی
\fIA\fR)
را به کامیت فرزند نسبت میدهد\&. با این گزینه، هر دو گروه از سطرها با اجرای مراحل بازرسی اضافی به والد منتسب میشوند\&.
.sp
\fI\fR
اختیاری است، اما کران پایینی برای تعداد نویسههای الفبایی-عددی است که گیت باید به عنوان جابجایی/کپی در یک فایل تشخیص دهد تا آن سطرها را به کامیت والد مرتبط سازد\&. مقدار پیشفرض ۲۰ است\&.
.RE
.PP
\fB\-C\fR[\fI\fR]
.RS 4
علاوه بر
\fB\-M\fR،
سطرهای منتقلشده یا کپیشده از فایلهای دیگری که در همان کامیت تغییر یافتهاند را تشخیص میدهد\&. این گزینه زمانی که برنامه خود را بازسازماندهی کرده و کد را میان فایلها جابجا میکنید مفید است\&. هنگامی که این گزینه دو بار داده شود، دستور علاوه بر این به دنبال کپیها از فایلهای دیگر در کامیتی که فایل را ایجاد کرده است میگردد\&. هنگامی که این گزینه سه بار داده شود، دستور علاوه بر این به دنبال کپیها از فایلهای دیگر در هر کامیتی میگردد\&.
.sp
\fI\fR
اختیاری است، اما کران پایینی برای تعداد نویسههای الفبایی-عددی است که گیت باید به عنوان جابجایی/کپی میان فایلها تشخیص دهد تا آن سطرها را به کامیت والد مرتبط سازد\&. و مقدار پیشفرض ۴۰ است\&. اگر بیش از یک گزینه
\fB\-C\fR
داده شده باشد، آرگومان
\fI\fR
آخرین
\fB\-C\fR
اعمال خواهد شد\&.
.RE
.PP
\fB\-\-ignore\-rev\fR \fI\fR
.RS 4
هنگام انتساب blame، تغییرات ایجادشده توسط آن ویرایش را نادیده میگیرد، گویی که این تغییر هرگز رخ نداده است\&. سطرهایی که توسط یک کامیت نادیدهگرفتهشده تغییر یافته یا اضافه شدهاند، به کامیت قبلی که آن سطر یا سطرهای مجاور را تغییر داده است منتسب خواهند شد\&. این گزینه ممکن است چندین بار برای نادیده گرفتن بیش از یک ویرایش مشخص شود\&. اگر گزینه پیکربندی
\fBblame\&.markIgnoredLines\fR
تنظیم شده باشد، سطرهایی که توسط یک کامیت نادیدهگرفتهشده تغییر کرده و به کامیت دیگری منتسب شدهاند با یک ? در خروجی blame علامتگذاری میشوند\&. اگر گزینه پیکربندی
\fBblame\&.markUnblamableLines\fR
تنظیم شده باشد، آن سطرهایی که توسط یک کامیت نادیدهگرفتهشده دستکاری شدهاند و نتوانستهایم آنها را به ویرایش دیگری منتسب کنیم با یک
\fB*\fR
علامتگذاری میشوند\&. در حالتهای پورسلین، به ترتیب عبارتهای
\fBignored\fR
و
\fBunblamable\fR
در یک خط جدید چاپ میشوند\&.
.RE
.PP
\fB\-\-ignore\-revs\-file\fR \fI\fR
.RS 4
ویرایشهای فهرستشده در
\fI\fR
را نادیده میگیرد، که باید قالبی مشابه با یک
\fBfsck\&.skipList\fR
داشته باشد\&. این گزینه ممکن است تکرار شود، و این فایلها پس از هر فایلی که با گزینه پیکربندی
\fBblame\&.ignoreRevsFile\fR
مشخص شده است پردازش خواهند شد\&. یک نام فایل خالی، ""، فهرست ویرایشهای فایلهای قبلاً پردازششده را پاک خواهد کرد\&.
.RE
.PP
\fB\-\-color\-lines\fR
.RS 4
رنگآمیزی حاشیهنویسی سطرها در قالب پیشفرض به شکلی متفاوت، در صورتی که از همان کامیت سطر قبلی آمده باشند\&. این کار تشخیص بلوکهای کد معرفیشده توسط کامیتهای مختلف را آسانتر میکند\&. رنگ پیشفرض فیروزهای (cyan) است و میتواند با استفاده از گزینه پیکربندی
\fBcolor\&.blame\&.repeatedLines\fR
تنظیم شود\&.
.RE
.PP
\fB\-\-color\-by\-age\fR
.RS 4
رنگآمیزی حاشیهنویسی سطرها بر اساس سن سطر در قالب پیشفرض\&. گزینه پیکربندی
\fBcolor\&.blame\&.highlightRecent\fR
کنترل میکند که چه رنگی برای هر محدوده سنی استفاده شود\&.
.RE
.PP
\fB\-h\fR
.RS 4
نمایش پیام راهنما\&.
.RE
.PP
\fB\-c\fR
.RS 4
استفاده از همان حالت خروجی
\fBgit-annotate\fR(1)
(پیشفرض: غیرفعال)\&.
.RE
.PP
\fB\-\-score\-debug\fR
.RS 4
لحاظ کردن اطلاعات اشکالزدایی مربوط به جابجایی سطرها میان فایلها (گزینه
\fB\-C\fR
را ببینید) و سطرهای جابجاشده درون یک فایل (گزینه
\fB\-M\fR
را ببینید)\&. اولین عدد فهرستشده امتیاز است\&. این عدد تعداد نویسههای الفبایی-عددی تشخیصدادهشده است که میان یا درون فایلها منتقل شدهاند\&. این مقدار باید بالاتر از آستانه معینی باشد تا
\fBgit\fR
\fBblame\fR
آن سطرهای کد را جابجاشده در نظر بگیرد\&.
.RE
.PP
\fB\-f\fR, \fB\-\-show\-name\fR
.RS 4
نمایش نام فایل در کامیت اصلی\&. به طور پیشفرض در صورتی که هر سطری به دلیل تشخیص تغییر نام، از فایلی با نام متفاوت آمده باشد، نام فایل نشان داده میشود\&.
.RE
.PP
\fB\-n\fR, \fB\-\-show\-number\fR
.RS 4
نمایش شماره سطر در کامیت اصلی (پیشفرض: غیرفعال)\&.
.RE
.PP
\fB\-s\fR
.RS 4
حذف نام نویسنده و برچسب زمانی از خروجی\&.
.RE
.PP
\fB\-e\fR, \fB\-\-show\-email\fR
.RS 4
نمایش ایمیل نویسنده به جای نام نویسنده (پیشفرض: غیرفعال)\&. این مورد همچنین میتواند از طریق گزینه پیکربندی
\fBblame\&.showEmail\fR
کنترل شود\&.
.RE
.PP
\fB\-w\fR
.RS 4
نادیده گرفتن فاصلههای خالی هنگام مقایسه نسخه والد و فرزند برای یافتن اینکه سطرها از کجا آمدهاند\&.
.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\-\-abbrev=\fR\fI\fR
.RS 4
به جای استفاده از ۷+۱ رقم هگزادسیمال پیشفرض به عنوان نام شیء مختصر، از
\fI+1\fR
رقم استفاده میکند، که در آن
\fI\fR
حداقل
\fI\fR
است اما یکتا بودن نامهای اشیاء کامیت را تضمین میکند\&. توجه داشته باشید که ۱ ستون برای علامت هشتک (caret) جهت مشخص کردن کامیت مرزی استفاده میشود\&.
.RE
.SH "قالب پیشفرض (THE DEFAULT FORMAT)"
.sp
هنگامی که هیچیک از گزینههای \fB\-\-porcelain\fR یا \fB\-\-incremental\fR مشخص نشده باشند، \fBgit\fR \fBblame\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\-s\fR
یا
\fB\-e\fR
مشخص شده باشد)؛ و
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
شماره سطر
.RE
.sp
پیش از محتویات سطر\&.
.SH "قالب پورسلین (THE PORCELAIN FORMAT)"
.sp
در این قالب، هر سطر پس از یک هدر خروجی داده میشود؛ این هدر حداقل دارای خط اولی است که شامل موارد زیر است:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
شناسه SHA\-1 چهل بایتی کامیتی که سطر به آن منتسب شده است؛
.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
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
در سطری که گروهی از سطرها از یک کامیت متفاوت نسبت به سطر قبلی را آغاز میکند، تعداد سطرهای این گروه\&. در سطرهای بعدی این فیلد وجود ندارد\&.
.RE
.sp
این خط هدر، حداقل یک بار برای هر کامیت با اطلاعات زیر دنبال میشود:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
نام نویسنده (\fBauthor\fR)، ایمیل (\fBauthor\-mail\fR)، زمان (\fBauthor\-time\fR)، و منطقه زمانی (\fBauthor\-tz\fR)؛ و به طور مشابه برای ثبتکننده کامیت (committer)\&.
.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
.\}
خط اول پیام لاگ کامیت (\fBsummary\fR)\&.
.RE
.sp
محتویات سطر واقعی پس از هدر بالا خروجی داده میشوند، که پیشوند آن یک نویسه \fITAB\fR است\&. این کار به منظور امکان افزودن عناصر بیشتر به هدر در آینده است\&.
.sp
قالب پورسلین به طور کلی اطلاعات کامیتی را که قبلاً دیده شده است حذف میکند\&. برای مثال، دو سطر که به یک کامیت منتسب شدهاند هر دو نشان داده خواهند شد، اما جزئیات مربوط به آن کامیت فقط یک بار نشان داده میشود\&. اطلاعاتی که مختص سطرهای منفرد هستند با یکدیگر گروهبندی نخواهند شد، مانند ویرایشهایی که قرار است به صورت \fBignored\fR یا \fBunblamable\fR علامتگذاری شوند\&. این روش کارآمدتر است، اما ممکن است نیاز داشته باشد که وضعیت بیشتری توسط خواننده برنامه نگهداری شود\&. از گزینه \fB\-\-line\-porcelain\fR میتوان برای خروجی دادن اطلاعات کامل کامیت برای هر سطر استفاده کرد، که امکان استفاده سادهتر (اما با کارایی کمتر) مانند زیر را فراهم میآورد:
.sp
.if n \{\
.RS 4
.\}
.nf
# شمارش تعداد سطرهای منتسب به هر نویسنده
git blame \-\-line\-porcelain file |
sed \-n \*(Aqs/^author //p\*(Aq |
sort | uniq \-c | sort \-rn
.fi
.if n \{\
.RE
.\}
.SH "مشخص کردن محدودهها (SPECIFYING RANGES)"
.sp
برخلاف \fBgit\fR \fBblame\fR و \fBgit\fR \fBannotate\fR در نسخههای قدیمیتر گیت، دامنه حاشیهنویسی میتواند هم به محدودههای سطری و هم به محدودههای ویرایشی محدود شود\&. گزینه \fB\-L\fR که حاشیهنویسی را به محدودهای از سطرها محدود میکند، میتواند چندین بار مشخص شود\&.
.sp
هنگامی که علاقهمند به یافتن مبدأ سطرهای ۴۰\-۶۰ برای فایل \fBfoo\fR هستید، میتوانید از گزینه \fB\-L\fR مانند زیر استفاده کنید (هر دو به یک معنا هستند \(em هر دو ۲۱ سطر را با شروع از سطر ۴۰ درخواست میکنند):
.sp
.if n \{\
.RS 4
.\}
.nf
git blame \-L 40,60 foo
git blame \-L 40,+21 foo
.fi
.if n \{\
.RE
.\}
.sp
همچنین میتوانید از یک عبارت باقاعده برای تعیین محدوده سطر استفاده کنید:
.sp
.if n \{\
.RS 4
.\}
.nf
git blame \-L \*(Aq/^sub hello {/,/^}$/\*(Aq foo
.fi
.if n \{\
.RE
.\}
.sp
که حاشیهنویسی را به بدنه زیرروال \fBhello\fR محدود میکند\&.
.sp
هنگامی که به تغییرات قدیمیتر از نسخه v2\&.6\&.18 یا تغییرات قدیمیتر از ۳ هفته علاقهمند نیستید، میتوانید از مشخصکنندههای محدوده ویرایش مشابه با \fBgit\fR \fBrev\-list\fR استفاده کنید:
.sp
.if n \{\
.RS 4
.\}
.nf
git blame v2\&.6\&.18\&.\&. \-\- foo
git blame \-\-since=3\&.weeks \-\- foo
.fi
.if n \{\
.RE
.\}
.sp
هنگامی که از مشخصکنندههای محدوده ویرایش برای محدود کردن حاشیهنویسی استفاده میشود، سطرهایی که از مرز محدوده تغییر نکردهاند (چه کامیت v2\&.6\&.18 و چه جدیدترین کامیتی که بیش از ۳ هفته قدمت دارد در مثال بالا) به همان کامیت مرز محدوده نسبت داده میشوند\&.
.sp
یک روش به ویژه مفید، بررسی این است که آیا یک فایل اضافهشده دارای سطرهایی است که با کپی و چسباندن از فایلهای موجود ایجاد شدهاند یا خیر\&. گاهی اوقات این نشان میدهد که توسعهدهنده بیدقت بوده و کد را به درستی بازآفرینی (refactor) نکرده است\&. ابتدا میتوانید کامیتی را که فایل را معرفی کرده است پیدا کنید:
.sp
.if n \{\
.RS 4
.\}
.nf
git log \-\-diff\-filter=A \-\-pretty=short \-\- foo
.fi
.if n \{\
.RE
.\}
.sp
و سپس با استفاده از نشانهگذاری \fBcommit^\fR!، تغییر میان کامیت و والدین آن را حاشیهنویسی کنید:
.sp
.if n \{\
.RS 4
.\}
.nf
git blame \-C \-C \-f $commit^! \-\- foo
.fi
.if n \{\
.RE
.\}
.SH "خروجی افزایشی (INCREMENTAL OUTPUT)"
.sp
هنگامی که با گزینه \fB\-\-incremental\fR فراخوانی شود، دستور نتیجه را همانطور که ساخته میشود در خروجی قرار میدهد\&. خروجی معمولاً ابتدا درباره سطرهایی صحبت میکند که توسط کامیتهای جدیدتر دستکاری شدهاند (یعنی سطرها بدون ترتیب حاشیهنویسی میشوند) و برای استفاده توسط نمایشگرهای تعاملی در نظر گرفته شده است\&.
.sp
قالب خروجی شبیه به قالب پورسلین است، اما شامل سطرهای واقعی فایل که در حال حاشیهنویسی است نمیشود\&.
.sp
.RS 4
.ie n \{\
\h'-04' 1.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 1." 4.2
.\}
هر مدخل blame همیشه با خطی به شکل زیر آغاز میشود:
.sp
.if n \{\
.RS 4
.\}
.nf
\fI<40\-byte\-hex\-sha1>\fR \fI\fR \fI\fR \fI\fR
.fi
.if n \{\
.RE
.\}
.sp
شماره سطرها از ۱ آغاز میشوند\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 2.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 2." 4.2
.\}
اولین باری که یک کامیت در جریان خروجی ظاهر میشود، اطلاعات گوناگون دیگری درباره آن چاپ میشود که با یک برچسب تککلمهای در ابتدای هر خط، اطلاعات اضافی کامیت (نویسنده، ایمیل، ثبتکننده کامیت، تاریخها، خلاصه و غیره) را توصیف میکند\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 3.\h'+01'\c
.\}
.el \{\
.sp -1
.IP " 3." 4.2
.\}
برخلاف قالب پورسلین، اطلاعات نام فایل همیشه ارائه میشود و مدخل را خاتمه میدهد:
.sp
.if n \{\
.RS 4
.\}
.nf
\fBfilename\fR \fI\fR
.fi
.if n \{\
.RE
.\}
.sp
و بنابراین تجزیه آن برای یک تجزیهکننده مبتنی بر خط و کلمه واقعاً بسیار ساده است (که برای اکثر زبانهای اسکریپتنویسی بسیار طبیعی است)\&.
.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
برای کسانی که عمل تجزیه (parsing) را انجام میدهند: جهت مقاومتر ساختن آن، کافی است هر خطی را میان خط اول و آخر (خطوط
\fI<40\-byte\-hex\-sha1>\fR
و
\fBfilename\fR)
که کلمات برچسب ابتدای خطوط «اطلاعات گسترده» آن را نمیشناسید (یا به آن مورد خاص اهمیتی نمیدهید) نادیده بگیرید\&. به این ترتیب، اگر اطلاعات جدیدی اضافه شود (مانند کدگذاری کامیت یا توضیحات گسترده کامیت)، نمایشگر blame با مشکلی مواجه نخواهد شد\&.
.sp .5v
.RE
.RE
.SH "نگاشت نویسندگان (MAPPING AUTHORS)"
.sp
\fBgitmailmap\fR(5)
را ببینید\&.
.SH "پیکربندی (CONFIGURATION)"
.sp
تمام موارد زیر این خط در این بخش به طور انتخابی از مستندات
\fBgit-config\fR(1)
آورده شده است\&. محتوا همان چیزی است که در آنجا یافت میشود:
.PP
blame\&.blankBoundary
.RS 4
نمایش نام شیء کامیت خالی برای کامیتهای مرزی در
\fBgit-blame\fR(1)\&.
این گزینه به صورت پیشفرض false است\&.
.RE
.PP
blame\&.coloring
.RS 4
طرح رنگآمیزی مورد استفاده در خروجی blame را مشخص میکند\&. این مقدار میتواند
\fIrepeatedLines\fR،
\fIhighlightRecent\fR،
یا
\fInone\fR
باشد که پیشفرض است\&.
.RE
.PP
blame\&.date
.RS 4
قالب مورد استفاده برای خروجی تاریخها را در
\fBgit-blame\fR(1)
مشخص میکند\&. در صورت تنظیم نشدن، قالب iso استفاده میشود\&. برای مقادیر پشتیبانیشده، بحث گزینه
\fB\-\-date\fR
را در
\fBgit-log\fR(1)
ببینید\&.
.RE
.PP
blame\&.showEmail
.RS 4
نمایش ایمیل نویسنده به جای نام نویسنده در
\fBgit-blame\fR(1)\&.
این گزینه به صورت پیشفرض false است\&.
.RE
.PP
blame\&.showRoot
.RS 4
عدم برخورد با کامیتهای ریشه به عنوان مرز در
\fBgit-blame\fR(1)\&.
این گزینه به صورت پیشفرض false است\&.
.RE
.PP
blame\&.ignoreRevsFile
.RS 4
نادیده گرفتن ویرایشهای فهرستشده در فایل، یک نام شیء مخففنشده در هر خط، در
\fBgit-blame\fR(1)\&.
فاصلههای خالی و توضیحاتی که با # آغاز میشوند نادیده گرفته خواهند شد\&. این گزینه ممکن است چندین بار تکرار شود\&. نامهای فایل خالی فهرست ویرایشهای نادیدهگرفتهشده را بازنشانی میکنند\&. این گزینه پیش از گزینه خط فرمان
\fB\-\-ignore\-revs\-file\fR
پردازش خواهد شد\&.
.RE
.PP
blame\&.markUnblamableLines
.RS 4
علامتگذاری سطرهایی که توسط یک ویرایش نادیدهگرفتهشده تغییر یافتهاند و نتوانستهایم به کامیت دیگری منتسب کنیم با یک
\fI*\fR
در خروجی
\fBgit-blame\fR(1)\&.
.RE
.PP
blame\&.markIgnoredLines
.RS 4
علامتگذاری سطرهایی که توسط یک ویرایش نادیدهگرفتهشده تغییر یافتهاند و به کامیت دیگری منتسب شدهاند با یک
\fI?\fR
در خروجی
\fBgit-blame\fR(1)\&.
.RE
.SH "همچنین ببینید (SEE ALSO)"
.sp
\fBgit-annotate\fR(1)
.SH "گیت (GIT)"
.sp
بخشی از مجموعه \fBgit\fR(1)