'\" t
.\" Title: git-interpret-trailers
.\" 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\-INTERPRET\-TRAILERS" "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-interpret-trailers \- افزودن یا تجزیه اطلاعات ساختاریافته در انتهای پیام کامیت
.SH "خلاصه دستور (SYNOPSIS)"
.sp
.nf
\fBgit\fR \fBinterpret\-trailers\fR [\fB\-\-in\-place\fR] [\fB\-\-trim\-empty\fR]
[(\fB\-\-trailer\fR (\fI\fR|\fI\fR)[(\fB=\fR|\fB:\fR)\fI\fR])\&...]
[\fB\-\-parse\fR] [\fI\fR\&...]
.fi
.sp
.SH "توضیحات (DESCRIPTION)"
.sp
افزودن یا تجزیه خطوط دنباله (\fItrailer\fR) که ساختاری مشابه با سرآیندهای ایمیل در RFC 822 دارند، در انتهای بخش آزاد پیام کامیت\&. برای نمونه، در پیام کامیت زیر:
.sp
.if n \{\
.RS 4
.\}
.nf
subject
Lorem ipsum dolor sit amet, consectetur adipiscing elit\&.
Signed\-off\-by: Alice
Signed\-off\-by: Bob
.fi
.if n \{\
.RE
.\}
.sp
.sp
دو خط پایانی که با \fBSigned\-off\-by\fR آغاز میشوند، دنباله (trailer) هستند\&.
.sp
این دستور پیامهای کامیت را از آرگومانهای \fI\fR یا در صورت عدم تعیین \fI\fR، از ورودی استاندارد میخواند\&. اگر \fB\-\-parse\fR مشخص شود، خروجی شامل دنبالههای تجزیهشده از ورودی خواهد بود، بدون آنکه گزینههای خط فرمان یا متغیرهای پیکربندی بر آنها تاثیری بگذارند\&.
.sp
در غیر این صورت، این دستور متغیرهای پیکربندی \fBtrailer\&.\fR\fI\fR (که میتوانند دنبالههای جدید اضافه کرده یا جایگاه آنها را تغییر دهند) و همچنین آرگومانهای خط فرمان را که میتوانند متغیرهای پیکربندی را بازنویسی کنند (مانند \fB\-\-trailer=\&.\fR\&.\&. که آن هم میتواند دنبالههای جدید بیفزاید)، روی هر فایل ورودی اعمال میکند\&. نتیجه در خروجی استاندارد منتشر میشود\&.
.sp
این دستور همچنین میتواند بر روی خروجی \fBgit-format-patch\fR(1) عمل کند، که ساختاری غنیتر از یک پیام کامیت ساده دارد\&. مشخصاً چنین خروجیای شامل یک پیام کامیت (همانند بالا)، یک خط جداکننده \fB\-\-\-\fR و یک بخش وصله (patch) است\&. برای این ورودیها، بخش جداکننده و وصله توسط این دستور تغییر نمیکنند و همانگونه که هستند در خروجی منتشر میشوند، مگر اینکه \fB\-\-no\-divider\fR تعیین شده باشد\&.
.sp
برخی متغیرهای پیکربندی نحوه اعمال آرگومانهای \fB\-\-trailer\fR روی هر ورودی و نحوه تغییر هر دنباله موجود در ورودی را کنترل میکنند\&. این متغیرها همچنین افزودن خودکار برخی دنبالهها را امکانپذیر میسازند\&.
.sp
بهطور پیشفرض، یک آرگومان \fI\fR\fB=\fR\fI\fR یا \fI\fR\fB:\fR\fI\fR که با استفاده از \fB\-\-trailer\fR داده میشود، تنها در صورتی پس از دنبالههای موجود الحاق خواهد شد که آخرین دنباله دارای جفت (\fI\fR, \fI\fR) متفاوتی باشد (یا اگر هیچ دنبالهای از قبل وجود نداشته باشد)\&. بخشهای \fI\fR و \fI\fR برای حذف فاصلههای خالی ابتدا و انتها پیراسته (trim) میشوند و مقادیر پیراستهشده حاصل در خروجی به این صورت نمایش داده خواهند شد:
.sp
.if n \{\
.RS 4
.\}
.nf
key: value
.fi
.if n \{\
.RE
.\}
.sp
.sp
این بدان معنی است که \fI\fR و \fI\fR پیراسته با "\fB:\fR\ \&" (یک دونقطه و به دنبال آن یک فاصله) از یکدیگر جدا میشوند\&.
.sp
برای راحتی، میتوان یک \fI\fR (نام مستعار کلید) را پیکربندی کرد تا تایپ گزینه \fB\-\-trailer\fR در خط فرمان کوتاهتر شود\&. این کار را میتوان با متغیر پیکربندی \fBtrailer\&.\fR\fI\fR\fB\&.key\fR انجام داد\&. مقدار \fI\fR باید یک پیشوند از رشته کامل \fI\fR باشد، هرچند بزرگی و کوچکی حروف اهمیتی ندارد\&. برای نمونه، اگر در پیکربندی خود مقدار زیر را داشته باشید:
.sp
.if n \{\
.RS 4
.\}
.nf
trailer\&.sign\&.key "Signed\-off\-by: "
.fi
.if n \{\
.RE
.\}
.sp
.sp
کافی است در خط فرمان عبارت \fB\-\-trailer=\fR"sign: \fBfoo\fR" را به جای \fB\-\-trailer=\fR"Signed\-off\-by: \fBfoo\fR" مشخص کنید\&.
.sp
بهطور پیشفرض دنباله جدید در انتهای تمام دنبالههای موجود قرار میگیرد\&. اگر دنبالهای از قبل وجود نداشته باشد، دنباله جدید در انتهای ورودی ظاهر میشود\&. اگر از قبل خط خالی وجود نداشته باشد، یک خط خالی پیش از دنباله جدید اضافه خواهد شد\&.
.sp
دنبالههای موجود با جستجوی گروهی از یک یا چند خط در ورودی استخراج میشوند که یا (i) تماماً دنباله باشند، یا (ii) شامل دستکم یک دنباله تولیدشده توسط گیت یا پیکربندیشده توسط کاربر بوده و حداقل ۲۵٪ آن از دنبالهها تشکیل شده باشد\&. پیش از این گروه باید یک یا چند خط خالی (یا فقط حاوی فاصلههای سفید) وجود داشته باشد\&. این گروه یا باید در انتهای ورودی باشد یا آخرین خطوط غیرخالی پیش از خطی باشد که با \fB\-\-\-\fR شروع میشود (به همراه یک فاصله یا پایان خط)\&.
.sp
هنگام خواندن دنبالهها، نمیتواند هیچ فاصله خالی قبل یا درون \fI\fR وجود داشته باشد، اما هر تعداد کاراکتر فاصله معمولی و تب (tab) میان \fI\fR و جداکننده مجاز است\&. قبل، درون یا بعد از \fI\fR میتواند فضای خالی وجود داشته باشد\&. مقدار \fI\fR ممکن است در چند خط امتداد یابد بهطوریکه هر خط بعدی با حداقل یک فاصله سفید آغاز شود، مشابه سازوکار "تازدن" (folding) در سرآیندهای RFC 822\&. مثال:
.sp
.if n \{\
.RS 4
.\}
.nf
key: This is a very long value, with spaces and
newlines in it\&.
.fi
.if n \{\
.RE
.\}
.sp
.sp
توجه داشته باشید که دنبالهها از بسیاری از قوانین سرآیندهای RFC 822 پیروی نمیکنند (و هدف آن نیز پیروی از آنها نیست)\&. برای نمونه، از قاعده کدگذاری (encoding) پیروی نمیکنند\&.
.SH "گزینهها (OPTIONS)"
.PP
\fB\-\-in\-place\fR, \fB\-\-no\-in\-place\fR
.RS 4
ویرایش درجا (in-place) فایلها\&. مقدار پیشفرض
\fB\-\-no\-in\-place\fR
است\&.
.RE
.PP
\fB\-\-trim\-empty\fR, \fB\-\-no\-trim\-empty\fR
.RS 4
اگر بخش
\fI\fR
هر دنباله فقط شامل فاصلههای خالی باشد، کل دنباله از خروجی حذف خواهد شد\&. این موضوع هم بر روی دنبالههای موجود و هم دنبالههای جدید اعمال میشود\&.
.sp
مقدار پیشفرض
\fB\-\-no\-trim\-empty\fR
است\&.
.RE
.PP
\fB\-\-trailer=\fR\fI\fR[(\fB=\fR|\fB:\fR)\fI\fR], \fB\-\-no\-trailer\fR
.RS 4
یک جفت (\fI\fR,
\fI\fR)
را مشخص میکند که باید به عنوان یک دنباله بر روی ورودیها اعمال شود\&. به توضیحات این دستور مراجعه کنید\&. این گزینه میتواند چندین بار مشخص شود\&.
.sp
از گزینه
\fB\-\-no\-trailer\fR
برای بازنشانی فهرست استفاده کنید\&.
.RE
.PP
\fB\-\-where=\fR\fI\fR, \fB\-\-no\-where\fR
.RS 4
محل اضافه شدن همه دنبالههای جدید را مشخص میکند\&. مقداری که با گزینه
\fB\-\-where\fR
تعیین شود، متغیر پیکربندی
\fBtrailer\&.where\fR
و هر متغیر قابل اعمال
\fBtrailer\&.\fR\fI\fR\fB\&.where\fR
را بازنویسی کرده و تا رخداد بعدی
\fB\-\-where\fR
یا
\fB\-\-no\-where\fR
بر تمام گزینههای
\fB\-\-trailer\fR
اعمال خواهد شد\&. موقعیتهای مجاز عبارتند از:
\fBafter\fR،
\fBbefore\fR،
\fBend\fR
یا
\fBstart\fR\&.
.sp
از گزینه
\fB\-\-no\-where\fR
برای پاک کردن اثر استفاده قبلی از
\fB\-\-where\fR
استفاده کنید، به نحوی که متغیرهای پیکربندی مربوطه دیگر بازنویسی نشوند\&.
.RE
.PP
\fB\-\-if\-exists=\fR\fI\fR, \fB\-\-no\-if\-exists\fR
.RS 4
اقدامی را مشخص میکند که در صورت وجود حداقل یک دنباله با همان
\fI\fR
در ورودی انجام خواهد شد\&. مقداری که با
\fB\-\-if\-exists\fR
تعیین شود، متغیر پیکربندی
\fBtrailer\&.ifExists\fR
و هر متغیر قابل اعمال
\fBtrailer\&.\fR\fI\fR\fB\&.ifExists\fR
را بازنویسی کرده و تا رخداد بعدی
\fB\-\-if\-exists\fR
یا
\fB\-\-no\-if\-exists\fR
بر تمام گزینههای
\fB\-\-trailer\fR
اعمال خواهد شد\&. اقدامات مجاز عبارتند از:
\fBaddIfDifferent\fR،
\fBaddIfDifferentNeighbor\fR،
\fBadd\fR،
\fBreplace\fR
و
\fBdoNothing\fR\&.
.sp
از گزینه
\fB\-\-no\-if\-exists\fR
برای پاک کردن اثر استفاده قبلی از
\fB\-\-if\-exists\fR
استفاده کنید، به گونهای که متغیرهای پیکربندی مربوطه دیگر بازنویسی نشوند\&.
.RE
.PP
\fB\-\-if\-missing=\fR\fI\fR, \fB\-\-no\-if\-missing\fR
.RS 4
اقدامی را مشخص میکند که در صورت عدم وجود هیچ دنباله دیگری با همان
\fI\fR
در ورودی انجام خواهد شد\&. مقداری که با
\fB\-\-if\-missing\fR
تعیین شود، متغیر پیکربندی
\fBtrailer\&.ifMissing\fR
و هر متغیر قابل اعمال
\fBtrailer\&.\fR\fI\fR\fB\&.ifMissing\fR
را بازنویسی کرده و تا رخداد بعدی
\fB\-\-if\-missing\fR
یا
\fB\-\-no\-if\-missing\fR
بر تمام گزینههای
\fB\-\-trailer\fR
اعمال خواهد شد\&. اقدامات مجاز عبارتند از:
\fBdoNothing\fR
یا
\fBadd\fR\&.
.sp
از گزینه
\fB\-\-no\-if\-missing\fR
برای پاک کردن اثر استفاده قبلی از
\fB\-\-if\-missing\fR
استفاده کنید، به نحوی که متغیرهای پیکربندی مربوطه دیگر بازنویسی نشوند\&.
.RE
.PP
\fB\-\-only\-trailers\fR, \fB\-\-no\-only\-trailers\fR
.RS 4
تنها دنبالهها چاپ شوند و هیچ بخش دیگری از ورودی در خروجی قرار نگیرد\&. مقدار پیشفرض
\fB\-\-no\-only\-trailers\fR
است\&.
.RE
.PP
\fB\-\-only\-input\fR, \fB\-\-no\-only\-input\fR
.RS 4
تنها دنبالههایی که در ورودی وجود دارند در خروجی قرار گیرند؛ هیچ دنبالهای از خط فرمان یا با اعمال متغیرهای پیکربندی
\fBtrailer\&.\fR\fI\fR
اضافه نشود\&. مقدار پیشفرض
\fB\-\-no\-only\-input\fR
است\&.
.RE
.PP
\fB\-\-unfold\fR, \fB\-\-no\-unfold\fR
.RS 4
اگر یک دنباله دارای مقداری باشد که در چند خط امتداد یافته است (اصطلاحاً تاخورده یا "folded")، مقدار آن را به صورت یک خط واحد بازآرایی میکند\&. مقدار پیشفرض
\fB\-\-no\-unfold\fR
است\&.
.RE
.PP
\fB\-\-parse\fR
.RS 4
یک نام مستعار کاربردی برای ترکیب گزینههای
\fB\-\-only\-trailers\fR،
\fB\-\-only\-input\fR
و
\fB\-\-unfold\fR\&.
این گزینه دیدن دنبالههای استخراجشده از ورودی را بدون تاثیرپذیری از گزینههای خط فرمان یا متغیرهای پیکربندی سادهتر میکند، و همزمان با
\fB\-\-unfold\fR
خروجی را برای خوانش ماشین سازگار میسازد\&.
.sp
هیچ گزینهای برای لغو یا بیاثر کردن این نام مستعار وجود ندارد\&.
.RE
.PP
\fB\-\-divider\fR, \fB\-\-no\-divider\fR
.RS 4
خط
\fB\-\-\-\fR
را به عنوان پایان پیام کامیت در نظر میگیرد\&. این رفتار پیشفرض است\&. از گزینه
\fB\-\-no\-divider\fR
زمانی استفاده کنید که اطمینان دارید ورودی تنها شامل خود پیام کامیت است (و نه یک ایمیل یا خروجی حاصل از
\fBgit-format-patch\fR(1))\&.
.RE
.SH "پیکربندی (CONFIGURATION)"
.sp
تمامی موارد زیر در این بخش به طور گزینششده از مستندات \fBgit-config\fR(1) درج شدهاند\&. محتوا با آنچه در آنجا موجود است یکسان است:
.PP
\fBtrailer\&.separators\fR
.RS 4
این گزینه مشخص میکند چه نویسههایی به عنوان جداکننده دنباله شناخته شوند\&. بهطور پیشفرض تنها
\fB:\fR
به عنوان جداکننده دنباله شناخته میشود، با این استثنا که
\fB=\fR
همیشه برای سازگاری با سایر دستورات گیت در خط فرمان پذیرفته میشود\&.
.sp
نخستین نویسه ارائهشده در این گزینه، نویسه پیشفرضی خواهد بود که در صورت عدم تعیین جداکننده دیگری در پیکربندی برای این دنباله، استفاده میشود\&.
.sp
برای نمونه، اگر مقدار این گزینه
\fB%=$\fR
باشد، تنها خطوطی با قالب
\fI\fR
که در آنها
\fI\fR
شامل
\fB%\fR،
\fB=\fR
یا
\fB$\fR
و سپس فاصله باشد، به عنوان دنباله در نظر گرفته میشوند\&. و
\fB%\fR
جداکننده پیشفرضی خواهد بود که استفاده میشود، بنابراین بهطور پیشفرض دنبالهها به این صورت ظاهر میشوند:
\fI\fR\fB%\fR
\fI\fR
(یک علامت درصد و یک فاصله بین کلید و مقدار قرار خواهد گرفت)\&.
.RE
.PP
\fBtrailer\&.where\fR
.RS 4
این گزینه مشخص میکند دنباله جدید در کجا افزوده شود\&.
.sp
این مقدار میتواند
\fBend\fR
(که پیشفرض است)،
\fBstart\fR،
\fBafter\fR
یا
\fBbefore\fR
باشد\&.
.sp
اگر مقدار آن
\fBend\fR
باشد، هر دنباله جدید در انتهای دنبالههای موجود قرار خواهد گرفت\&.
.sp
اگر مقدار آن
\fBstart\fR
باشد، هر دنباله جدید به جای انتها، در آغاز دنبالههای موجود ظاهر میشود\&.
.sp
اگر مقدار آن
\fBafter\fR
باشد، هر دنباله جدید دقیقاً پس از آخرین دنباله با همان
\fI\fR
قرار خواهد گرفت\&.
.sp
اگر مقدار آن
\fBbefore\fR
باشد، هر دنباله جدید دقیقاً پیش از نخستین دنباله با همان
\fI\fR
قرار خواهد گرفت\&.
.RE
.PP
\fBtrailer\&.ifexists\fR
.RS 4
این گزینه امکان انتخاب اقدامی را فراهم میکند که در صورت وجود دستکم یک دنباله با همان
\fI\fR
در ورودی انجام شود\&.
.sp
مقادیر معتبر برای این گزینه عبارتند از:
\fBaddIfDifferentNeighbor\fR
(که پیشفرض است)،
\fBaddIfDifferent\fR،
\fBadd\fR،
\fBreplace\fR
یا
\fBdoNothing\fR\&.
.sp
با مقدار
\fBaddIfDifferentNeighbor\fR،
یک دنباله جدید تنها در صورتی اضافه میشود که هیچ دنبالهای با همان جفت (\fI\fR,
\fI\fR)
در خط بالا یا پایین موقعیتی که دنباله جدید قرار است در آن اضافه شود وجود نداشته باشد\&.
.sp
با مقدار
\fBaddIfDifferent\fR،
یک دنباله جدید تنها در صورتی اضافه میشود که هیچ دنبالهای با همان جفت (\fI\fR,
\fI\fR)
از قبل در ورودی موجود نباشد\&.
.sp
با مقدار
\fBadd\fR،
یک دنباله جدید اضافه میشود، حتی اگر دنبالههایی با همان جفت (\fI\fR,
\fI\fR)
از قبل در ورودی موجود باشند\&.
.sp
با مقدار
\fBreplace\fR،
یک دنباله موجود با همان
\fI\fR
حذف شده و دنباله جدید افزوده خواهد شد\&. دنباله حذفشده نزدیکترین دنباله (با همان
\fI\fR)
به موقعیتی خواهد بود که دنباله جدید در آن اضافه میشود\&.
.sp
با مقدار
\fBdoNothing\fR،
هیچ عملی صورت نخواهد گرفت؛ یعنی اگر از قبل دنبالهای با همان
\fI\fR
در ورودی باشد، هیچ دنباله جدیدی اضافه نمیشود\&.
.RE
.PP
\fBtrailer\&.ifmissing\fR
.RS 4
این گزینه امکان انتخاب اقدامی را فراهم میکند که در صورت عدم وجود هیچ دنبالهای با همان
\fI\fR
در ورودی انجام شود\&.
.sp
مقادیر مجاز برای این گزینه عبارتند از:
\fBadd\fR
(که پیشفرض است) و
\fBdoNothing\fR\&.
.sp
با مقدار
\fBadd\fR،
یک دنباله جدید اضافه خواهد شد\&.
.sp
با مقدار
\fBdoNothing\fR،
هیچ اقدامی صورت نخواهد گرفت\&.
.RE
.PP
\fBtrailer\&.\fR\fI\fR\fB\&.key\fR
.RS 4
یک
\fI\fR
(نام مستعار کلید) برای
\fI\fR
تعریف میکند\&. مقدار
\fI\fR
باید پیشوندی (بدون توجه به بزرگی یا کوچکی حروف) از
\fI\fR
باشد\&. برای نمونه، در دستور
\fBgit\fR \fBconfig\fR \fBtrailer\&.ack\&.key\fR "Acked\-by"
مقدار
\fBAcked\-by\fR
همان
\fI\fR
است و
\fBack\fR
همان
\fI\fR
است\&. این پیکربندی استفاده از فراخوانی کوتاهتر
\fB\-\-trailer\fR "ack:\fB\&.\&.\&.\fR"
را در خط فرمان با استفاده از نام مستعار "ack" به جای فرم طولانیتر
\fB\-\-trailer\fR "Acked\-by:\fB\&.\&.\&.\fR"
میسر میسازد\&.
.sp
در انتهای
\fI\fR،
یک جداکننده و سپس چند نویسه فاصله میتواند قرار گیرد\&. بهطور پیشفرض تنها جداکننده معتبر
\fB:\fR
است، اما این رفتار را میتوان با متغیر پیکربندی
\fBtrailer\&.separators\fR
تغییر داد\&.
.sp
اگر یک جداکننده در کلید وجود داشته باشد، هنگام افزودن دنباله، جداکننده پیشفرض را بازنویسی میکند\&.
.RE
.PP
\fBtrailer\&.\fR\fI\fR\fB\&.where\fR
.RS 4
این گزینه همان مقادیر متغیر پیکربندی
\fBtrailer\&.where\fR
را میپذیرد و آنچه را که توسط آن گزینه تعیین شده است برای دنبالههایی با
\fI\fR
مشخصشده بازنویسی میکند\&.
.RE
.PP
\fBtrailer\&.\fR\fI\fR\fB\&.ifexists\fR
.RS 4
این گزینه همان مقادیر متغیر پیکربندی
\fBtrailer\&.ifexists\fR
را میپذیرد و آنچه را که توسط آن گزینه تعیین شده است برای دنبالههایی با
\fI\fR
مشخصشده بازنویسی میکند\&.
.RE
.PP
\fBtrailer\&.\fR\fI\fR\fB\&.ifmissing\fR
.RS 4
این گزینه همان مقادیر متغیر پیکربندی
\fBtrailer\&.ifmissing\fR
را میپذیرد و آنچه را که توسط آن گزینه تعیین شده است برای دنبالههایی با
\fI\fR
مشخصشده بازنویسی میکند\&.
.RE
.PP
\fBtrailer\&.\fR\fI\fR\fB\&.command\fR
.RS 4
منسوخشده به نفع
\fBtrailer\&.\fR\fI\fR\fB\&.cmd\fR\&.
این گزینه مشابه با
\fBtrailer\&.\fR\fI\fR\fB\&.cmd\fR
رفتار میکند، به جز اینکه هیچ آرگومانی را به دستور مشخصشده ارسال نمیکند\&. در عوض، نخستین رخداد زیررشته
\fB$ARG\fR
با
\fI\fR
که قرار بود به عنوان آرگومان ارسال شود جایگزین میشود\&.
.sp
توجه داشته باشید که
\fB$ARG\fR
در دستور کاربر تنها یک بار جایگزین میشود و روش اولیه جایگزینی
\fB$ARG\fR
ایمن نیست\&.
.sp
هنگامی که هر دو گزینه
\fBtrailer\&.\fR\fI\fR\fB\&.cmd\fR
و
\fBtrailer\&.\fR\fI\fR\fB\&.command\fR
برای یک
\fI\fR
مشابه داده شوند،
\fBtrailer\&.\fR\fI\fR\fB\&.cmd\fR
مورد استفاده قرار میگیرد و
\fBtrailer\&.\fR\fI\fR\fB\&.command\fR
نادیده گرفته میشود\&.
.RE
.PP
\fBtrailer\&.\fR\fI\fR\fB\&.cmd\fR
.RS 4
این گزینه میتواند برای تعیین یک دستور شل استفاده شود که یک بار برای افزودن خودکار یک دنباله با
\fI\fR
مشخصشده فراخوانی میشود، و سپس هر بار که یک آرگومان
\fB\-\-trailer\fR
\fI\fR\fB=\fR\fI\fR
تعیین شود، فراخوانی میگردد تا
\fI\fR
دنبالهای را که این گزینه تولید میکرد اصلاح کند\&.
.sp
هنگامی که دستور مشخصشده برای نخستین بار جهت افزودن یک دنباله با
\fI\fR
تعیینشده فراخوانی میشود، رفتار به گونهای است که گویی یک آرگومان ویژه
\fB\-\-trailer\fR
\fI\fR\fB=\fR\fI\fR
در ابتدای فراخوانی
\fBgit-interpret-trailers\fR(1)
اضافه شده باشد، که در آن
\fI\fR
خروجی استاندارد دستور پس از پیراستن فاصلههای سفید ابتدا و انتها در نظر گرفته میشود\&.
.sp
اگر تعدادی آرگومان
\fB\-\-trailer\fR
\fI\fR\fB=\fR\fI\fR
نیز در خط فرمان ارسال شده باشند، دستور یک بار دیگر به ازای هر یک از این آرگومانها با همان
\fI\fR
فراخوانی میشود\&. و بخش
\fI\fR
این آرگومانها (در صورت وجود) به عنوان اولین آرگومان به دستور فرستاده خواهد شد\&. بدین ترتیب دستور میتواند یک
\fI\fR
را بر پایه
\fI\fR
ارسالشده در آرگومان
\fB\-\-trailer\fR
\fI\fR\fB=\fR\fI\fR
محاسبه و تولید نماید\&.
.RE
.SH "مثالها (EXAMPLES)"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
پیکربندی یک دنباله
\fBsign\fR
با یک کلید
\fBSigned\-off\-by\fR،
و سپس افزودن دو مورد از این دنبالهها به یک فایل پیام کامیت:
.sp
.if n \{\
.RS 4
.\}
.nf
$ git config trailer\&.sign\&.key "Signed\-off\-by"
$ cat msg\&.txt
subject
body text
$ git interpret\-trailers \-\-trailer \*(Aqsign: Alice \*(Aq \-\-trailer \*(Aqsign: Bob \*(Aq
Signed\-off\-by: Bob
.fi
.if n \{\
.RE
.\}
.sp
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
استفاده از گزینه
\fB\-\-in\-place\fR
برای ویرایش درجا یک فایل پیام کامیت:
.sp
.if n \{\
.RS 4
.\}
.nf
$ cat msg\&.txt
subject
body text
Signed\-off\-by: Bob
$ git interpret\-trailers \-\-trailer \*(AqAcked\-by: Alice \*(Aq \-\-in\-place msg\&.txt
$ cat msg\&.txt
subject
body text
Signed\-off\-by: Bob
Acked\-by: Alice
.fi
.if n \{\
.RE
.\}
.sp
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
استخراج آخرین کامیت به عنوان یک وصله، و افزودن یک دنباله
\fBCc\fR
و یک دنباله
\fBReviewed\-by\fR
به آن:
.sp
.if n \{\
.RS 4
.\}
.nf
$ git format\-patch \-1
0001\-foo\&.patch
$ git interpret\-trailers \-\-trailer \*(AqCc: Alice \*(Aq \-\-trailer \*(AqReviewed\-by: Bob \*(Aq 0001\-foo\&.patch >0001\-bar\&.patch
.fi
.if n \{\
.RE
.\}
.sp
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
پیکربندی یک دنباله
\fBsign\fR
با دستوری جهت افزودن خودکار "\fBSigned\-off\-by:\fR\ \&" همراه با مشخصات نویسنده تنها در صورتی که هنوز هیچ "\fBSigned\-off\-by:\fR\ \&" وجود نداشته باشد، و نمایش نحوه عملکرد آن:
.sp
.if n \{\
.RS 4
.\}
.nf
$ cat msg1\&.txt
subject
body text
$ git config trailer\&.sign\&.key "Signed\-off\-by: "
$ git config trailer\&.sign\&.ifmissing add
$ git config trailer\&.sign\&.ifexists doNothing
$ git config trailer\&.sign\&.cmd \*(Aqecho "$(git config user\&.name) <$(git config user\&.email)>"\*(Aq
$ git interpret\-trailers \-\-trailer sign
$ cat msg2\&.txt
subject
body text
Signed\-off\-by: Alice
$ git interpret\-trailers \-\-trailer sign
.fi
.if n \{\
.RE
.\}
.sp
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
پیکربندی یک دنباله
\fBfix\fR
با کلیدی که شامل علامت # باشد و هیچ فاصلهای پس از این نویسه نداشته باشد، و نمایش نحوه عملکرد آن:
.sp
.if n \{\
.RS 4
.\}
.nf
$ git config trailer\&.separators ":#"
$ git config trailer\&.fix\&.key "Fix #"
$ echo "subject" | git interpret\-trailers \-\-trailer fix=42
subject
Fix #42
.fi
.if n \{\
.RE
.\}
.sp
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
پیکربندی یک دنباله
\fBhelp\fR
همراه با یک cmd که از اسکریپت
\fBglog\-find\-author\fR
استفاده میکند؛ اسکریپتی که هویت نویسنده مشخصشده را از لاگ مخزن گیت جستجو میکند، و نمایش نحوه عملکرد آن:
.sp
.if n \{\
.RS 4
.\}
.nf
$ cat ~/bin/glog\-find\-author
#!/bin/sh
test \-n "$1" && git log \-\-author="$1" \-\-pretty="%an <%ae>" \-1 || true
$ cat msg\&.txt
subject
body text
$ git config trailer\&.help\&.key "Helped\-by: "
$ git config trailer\&.help\&.ifExists "addIfDifferentNeighbor"
$ git config trailer\&.help\&.cmd "~/bin/glog\-find\-author"
$ git interpret\-trailers \-\-trailer="help:Junio" \-\-trailer="help:Couder"
Helped\-by: Christian Couder
.fi
.if n \{\
.RE
.\}
.sp
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
پیکربندی یک دنباله
\fBref\fR
همراه با یک cmd که از اسکریپت
\fBglog\-grep\fR
برای یافتن (grep) آخرین کامیت مرتبط از تاریخچه مخزن گیت استفاده میکند، و نمایش نحوه عملکرد آن:
.sp
.if n \{\
.RS 4
.\}
.nf
$ cat ~/bin/glog\-grep
#!/bin/sh
test \-n "$1" && git log \-\-grep "$1" \-\-pretty=reference \-1 || true
$ cat msg\&.txt
subject
body text
$ git config trailer\&.ref\&.key "Reference\-to: "
$ git config trailer\&.ref\&.ifExists "replace"
$ git config trailer\&.ref\&.cmd "~/bin/glog\-grep"
$ git interpret\-trailers \-\-trailer="ref:Add copyright notices\&." commit_template\&.txt
$ git config commit\&.template commit_template\&.txt
$ cat \&.git/hooks/commit\-msg
#!/bin/sh
git interpret\-trailers \-\-trim\-empty \-\-trailer "git\-version: \e$(git describe)" "\e$1" > "\e$1\&.new"
mv "\e$1\&.new" "\e$1"
$ chmod +x \&.git/hooks/commit\-msg
.fi
.if n \{\
.RE
.\}
.sp
.RE
.SH "همچنین ببینید (SEE ALSO)"
.sp
\fBgit-commit\fR(1), \fBgit-format-patch\fR(1), \fBgit-config\fR(1)
.SH "گیت (GIT)"
.sp
بخشی از مجموعه \fBgit\fR(1)