GIT-MAILINFO(1) Git Manual GIT-MAILINFO(1)

git-mailinfo - استخراج وصله و اطلاعات نویسنده از یک پیام ایمیل

git mailinfo [-k|-b] [-u | --encoding=<encoding> | -n]
               [--[no-]scissors] [--quoted-cr=<action>]
               <msg> <patch>

یک پیام ایمیل را از ورودی استاندارد می‌خواند و پیام گزارش کامیت را در فایل <msg> و وصله‌ها را در فایل <patch> می‌نویسد. نام نویسنده، ایمیل و موضوع ایمیل در خروجی استاندارد نوشته می‌شوند تا توسط git am برای ایجاد کامیت مورد استفاده قرار گیرند. معمولاً نیازی به استفاده مستقیم از این دستور نیست؛ به جای آن git-am(1) را ببینید.

-k

معمولاً این برنامه زواید ایمیل را از خط سربرگ Subject: حذف می‌کند تا عنوان پیام گزارش کامیت را استخراج کند. این گزینه مانع از این دستکاری می‌شود و بیشترین کاربرد آن هنگام بازخوانی خروجی git format-patch -k است.

به‌طور مشخص، موارد زیر تا زمانی که دیگر چیزی از آن‌ها باقی نماند حذف می‌شوند:

•فاصله‌های خالی ابتدا و انتهای متن.
•عبارت‌های ابتدایی Re:، re: و :.
•رشته‌های درون کروشه در ابتدا (میان [ و ]، معمولاً [PATCH]).

در نهایت، فاصله‌های خالی پیاپی به یک نویسه فاصله ASCII یکسان‌سازی می‌شوند.

-b

هنگامی که -k فعال نباشد، تمام رشته‌های ابتدایی محصور میان جفت‌های [ و ] حذف می‌شوند. این گزینه حذف کردن را تنها به جفت‌هایی محدود می‌کند که رشته درون کروشه آن‌ها حاوی کلمه "PATCH" باشد.

-u

پیام گزارش کامیت، نام نویسنده و ایمیل نویسنده از ایمیل گرفته شده و پس از رمزگشایی حداقلی کدگذاری انتقال MIME، با نویسه‌گردانی در مجموعه نویسه‌های مشخص‌شده توسط i18n.commitEncoding (با مقدار پیش‌فرض UTF-8) بازکدگذاری می‌شوند. این ویژگی قبلاً اختیاری بود اما اکنون رفتار پیش‌فرض است.

توجه داشته باشید که وصله همیشه بدون تغییر و بدون تبدیل مجموعه نویسه‌ها استفاده می‌شود، حتی با وجود این گزینه.

--encoding=<encoding>

مشابه با -u است، اما هنگام بازکدگذاری، مجموعه نویسه‌های مشخص‌شده در اینجا به جای مقدار تعیین‌شده در i18n.commitEncoding یا UTF-8 استفاده می‌شود.

-n

غیرفعال کردن تمام بازکدگذاری‌های مجموعه نویسه‌ها برای متاداده.

-m, --message-id

کپی کردن سربرگ Message-ID در انتهای پیام کامیت. این گزینه برای پیوند دادن کامیت‌ها به بحث‌های فهرست پستی (mailing list) مفید است.

--scissors

حذف هر آنچه در بدنه پیام پیش از خط قیچی (مانند "-- >8 --") قرار دارد. این خط نماد قیچی و خط‌چین برش است و برای درخواست از خواننده جهت برش پیام در آن خط استفاده می‌شود. اگر چنین خطی در بدنه پیام پیش از وصله ظاهر شود، با استفاده از این گزینه، تمام موارد پیش از آن (شامل خود خط قیچی) نادیده گرفته می‌شوند.

این قابلیت زمانی مفید است که بخواهید پیام خود را در یک رشته گفتگو با نظرات و پیشنهاد‌ها درباره پیامی که به آن پاسخ می‌دهید آغاز کنید و آن را با ارسال یک وصله به پایان برسانید، به گونه‌ای که بحث و آغاز پیام گزارش کامیت پیشنهادی با یک خط قیچی از هم جدا شوند.

این ویژگی را می‌توان به‌طور پیش‌فرض با گزینه پیکربندی mailinfo.scissors فعال کرد.

--no-scissors

نادیده گرفتن خطوط قیچی. برای بازنویسی و بی‌اثر کردن تنظیمات mailinfo.scissors مفید است.

--quoted-cr=<action>

عملی که باید هنگام پردازش پیام‌های ایمیل ارسال‌شده با کدگذاری base64 یا quoted-printable انجام شود، در صورتی که خطوط رمزگشایی‌شده به جای یک LF ساده با CRLF پایان یابند.

عملیات‌های معتبر عبارتند از:

•nowarn: گیت هنگام یافتن چنین CRLF هیچ واکنشی نشان نخواهد داد.
•warn: در صورت یافتن چنین CRLF، گیت برای هر پیام هشداری صادر خواهد کرد.
•strip: گیت آن نویسه‌های CRLF را به LF تبدیل خواهد کرد.

عمل پیش‌فرض را می‌توان از طریق گزینه پیکربندی mailinfo.quotedCR تنظیم کرد. اگر چنین گزینه‌ای تنظیم نشده باشد، از warn استفاده خواهد شد.

<msg>

پیام گزارش کامیت استخراج‌شده از ایمیل، معمولاً به استثنای خط عنوان که از Subject ایمیل گرفته می‌شود.

<patch>

وصله استخراج‌شده از ایمیل.

تمام موارد زیر این خط در این بخش، به‌صورت گزینش‌شده از مستندات git-config(1) گنجانده شده‌اند. محتوای آن‌ها همان چیزی است که در آنجا یافت می‌شود:

mailinfo.scissors

در صورت تنظیم روی true، باعث می‌شود git-mailinfo(1) (و در نتیجه git-am(1)) به‌طور پیش‌فرض طوری رفتار کنند که گویی گزینه --scissors در خط فرمان داده شده است. هنگام فعال بودن، این ویژگی هر آنچه را که در بدنه پیام پیش از خط قیچی (یعنی خطی که عمدتاً شامل ">8"، "8<" و "-" است) قرار دارد حذف می‌کند.

بخشی از مجموعه git(1)

2026-06-29 Git 2.55.0