GITFORMAT-SIGNATURE(5) Git Manual GITFORMAT-SIGNATURE(5)

gitformat-signature - قالب‌های امضای رمزنگاری‌شده در گیت

<[tag|commit] object header(s)>
<over-the-wire protocol>

گیت از امضاهای رمزنگاری‌شده در بخش‌های گوناگونی استفاده می‌کند، در حال حاضر روی اشیا (برچسب‌ها، کامیت‌ها، برچسب‌های ادغام) و تراکنش‌ها (pushها). در هر حالت، دستوری که قصد ایجاد شیء یا تراکنش را دارد، یک بارِ داده (payload) از آن تعیین کرده، برنامه‌ای خارجی را برای دریافت امضای مجزا (detached signature) برای آن بار داده فرامی‌خواند (در مورد امضاهای PGP دستور gpg -bsa)، و امضا را درون شیء یا تراکنش جاسازی می‌کند.

امضاها با یک خط هدر "ASCII Armor" آغاز می‌شوند و با یک خط پایانی به پایان می‌رسند، که بسته به نوع امضا (بر اساس مقدار انتخاب‌شده توسط gpg.format، نگاه کنید به git-config(1)) تفاوت دارند. این موارد برای مقادیر gpg.format به شرح زیر است:

gpg (PGP)

-----BEGIN PGP SIGNATURE----- و -----END PGP SIGNATURE-----. یا اگر به gpg دستور داده شود امضاهای RFC1991 تولید کند، -----BEGIN PGP MESSAGE----- و -----END PGP MESSAGE-----

ssh (SSH)

-----BEGIN SSH SIGNATURE----- و -----END SSH SIGNATURE-----

x509 (X.509)

-----BEGIN SIGNED MESSAGE----- و -----END SIGNED MESSAGE-----

امضاها گاهی به عنوان بخشی از بار داده عادی ظاهر می‌شوند (برای نمونه یک برچسب امضاشده بلوک امضا را پس از بار داده‌ای که امضا بر آن اعمال می‌شود ضمیمه دارد)، و گاهی در مقدار یک هدر شیء ظاهر می‌شوند (به عنوان مثال یک کامیت ادغام که یک برچسب امضاشده را ادغام کرده است، تمام محتوای برچسب را روی هدر "mergetag" خود خواهد داشت). در حالت دوم، قاعده معمول قالب‌بندی چندخطی برای هدر اشیا اعمال می‌شود؛ یعنی سطر دوم و سطرهای پس از آن با یک فاصله خالی (SP) آغاز می‌شوند تا نشان دهند که سطر ادامه‌یافته سطر قبلی است.

این موضوع حتی برای سطرهایی که در اصل خالی بوده‌اند نیز صدق می‌کند. در مثال‌های زیر، انتهای سطری که با نویسه فاصله به پایان می‌رسد با علامت $ نشان داده شده است؛ اگر قصد دارید این مثال‌ها را به صورت دستی بازسازی کنید، آن‌ها را کپی و پیست نکنید—آن‌ها عمدتاً برای مشخص کردن فاصله‌های خالی اضافی در انتهای برخی سطرها در آنجا قرار داده شده‌اند.

بار داده امضاشده و نحوه جاسازی امضا به نوع شیء یا تراکنش بستگی دارد.

•ایجادشده توسط: git tag -s
•بارِ داده (payload): شیء برچسب حاشیه‌نویسی‌شده (annotated tag object)
•جاسازی: ضمیمه کردن امضا به شیء برچسب بدون امضا
•مثال: برچسب signedtag با موضوع signed tag
object 04b871796dc0420f8e7561a895b52484b701d51a
type commit
tag signedtag
tagger C O Mitter <committer@example.com> 1465981006 +0000
signed tag
signed tag message body
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQEcBAABAgAGBQJXYRhOAAoJEGEJLoW3InGJklkIAIcnhL7RwEb/+QeX9enkXhxn
rxfdqrvWd1K80sl2TOt8Bg/NYwrUBw/RWJ+sg/hhHp4WtvE1HDGHlkEz3y11Lkuh
8tSxS3qKTxXUGozyPGuE90sJfExhZlW4knIQ1wt/yWqM+33E9pN4hzPqLwyrdods
q8FWEqPPUbSJXoMbRPw04S5jrLtZSsUWbRYjmJCHzlhSfFWW4eFd37uquIaLUBS0
rkC3Jrx7420jkIpgFcTI2s60uhSQLzgcCwdA2ukSYIRnjg/zDkj8+3h/GaROJ72x
lZyI6HWixKJkWw8lE9aAOD9TmTW9sFJwcVAzmAuFX2kUreDUKMZduGcoRYGpD7E=
=jpXa
-----END PGP SIGNATURE-----
•اعتبارسنجی با: git verify-tag [-v] یا git tag -v
gpg: Signature made Wed Jun 15 10:56:46 2016 CEST using RSA key ID B7227189
gpg: Good signature from "Eris Discordia <discord@example.net>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: D4BE 2231 1AD3 131E 5EDA  29A4 6109 2E85 B722 7189
object 04b871796dc0420f8e7561a895b52484b701d51a
type commit
tag signedtag
tagger C O Mitter <committer@example.com> 1465981006 +0000
signed tag
signed tag message body

•ایجادشده توسط: git commit -S
•بارِ داده (payload): شیء کامیت
•جاسازی: مدخل هدر gpgsig (محتوا با یک فاصله آغاز می‌شود)
•مثال: کامیت با موضوع signed commit
tree eebfed94e75e7760540d1485c740902590a00332
parent 04b871796dc0420f8e7561a895b52484b701d51a
author A U Thor <author@example.com> 1465981137 +0000
committer C O Mitter <committer@example.com> 1465981137 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 $
 iQEcBAABAgAGBQJXYRjRAAoJEGEJLoW3InGJ3IwIAIY4SA6GxY3BjL60YyvsJPh/
 HRCJwH+w7wt3Yc/9/bW2F+gF72kdHOOs2jfv+OZhq0q4OAN6fvVSczISY/82LpS7
 DVdMQj2/YcHDT4xrDNBnXnviDO9G7am/9OE77kEbXrp7QPxvhjkicHNwy2rEflAA
 zn075rtEERDHr8nRYiDh8eVrefSO7D+bdQ7gv+7GsYMsd2auJWi1dHOSfTr9HIF4
 HJhWXT9d2f8W+diRYXGh4X0wYiGg6na/soXc+vdtDYBzIxanRqjg8jCAeo1eOTk1
 EdTwhcTZlI0x5pvJ3H0+4hA2jtldVtmPM4OTB0cTrEWBad7XV6YgiyuII73Ve3I=
 =jKHM
 -----END PGP SIGNATURE-----
signed commit
signed commit message body
•اعتبارسنجی با: git verify-commit [-v] (یا git show --show-signature)
gpg: Signature made Wed Jun 15 10:58:57 2016 CEST using RSA key ID B7227189
gpg: Good signature from "Eris Discordia <discord@example.net>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: D4BE 2231 1AD3 131E 5EDA  29A4 6109 2E85 B722 7189
tree eebfed94e75e7760540d1485c740902590a00332
parent 04b871796dc0420f8e7561a895b52484b701d51a
author A U Thor <author@example.com> 1465981137 +0000
committer C O Mitter <committer@example.com> 1465981137 +0000
signed commit
signed commit message body

•ایجادشده توسط: git merge روی برچسب امضاشده
•بار داده/جاسازی: کل شیء برچسب امضاشده درون شیء کامیت (ادغام) به عنوان مدخل هدر mergetag جاسازی می‌شود
•مثال: ادغام برچسب امضاشده signedtag همانند بالا
tree c7b1cff039a93f3600a1d18b82d26688668c7dea
parent c33429be94b5f2d3ee9b0adad223f877f174b05d
parent 04b871796dc0420f8e7561a895b52484b701d51a
author A U Thor <author@example.com> 1465982009 +0000
committer C O Mitter <committer@example.com> 1465982009 +0000
mergetag object 04b871796dc0420f8e7561a895b52484b701d51a
 type commit
 tag signedtag
 tagger C O Mitter <committer@example.com> 1465981006 +0000
 $
 signed tag
 $
 signed tag message body
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 $
 iQEcBAABAgAGBQJXYRhOAAoJEGEJLoW3InGJklkIAIcnhL7RwEb/+QeX9enkXhxn
 rxfdqrvWd1K80sl2TOt8Bg/NYwrUBw/RWJ+sg/hhHp4WtvE1HDGHlkEz3y11Lkuh
 8tSxS3qKTxXUGozyPGuE90sJfExhZlW4knIQ1wt/yWqM+33E9pN4hzPqLwyrdods
 q8FWEqPPUbSJXoMbRPw04S5jrLtZSsUWbRYjmJCHzlhSfFWW4eFd37uquIaLUBS0
 rkC3Jrx7420jkIpgFcTI2s60uhSQLzgcCwdA2ukSYIRnjg/zDkj8+3h/GaROJ72x
 lZyI6HWixKJkWw8lE9aAOD9TmTW9sFJwcVAzmAuFX2kUreDUKMZduGcoRYGpD7E=
 =jpXa
 -----END PGP SIGNATURE-----
Merge tag 'signedtag' into downstream
signed tag
signed tag message body
# gpg: Signature made Wed Jun 15 08:56:46 2016 UTC using RSA key ID B7227189
# gpg: Good signature from "Eris Discordia <discord@example.net>"
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: D4BE 2231 1AD3 131E 5EDA  29A4 6109 2E85 B722 7189
•اعتبارسنجی با: اعتبارسنجی به طور پیش‌فرض درون پیام کامیت ادغام جاسازی می‌شود، یا به عنوان روش جایگزین با git show --show-signature:
commit 9863f0c76ff78712b6800e199a46aa56afbcbd49
merged tag 'signedtag'
gpg: Signature made Wed Jun 15 10:56:46 2016 CEST using RSA key ID B7227189
gpg: Good signature from "Eris Discordia <discord@example.net>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: D4BE 2231 1AD3 131E 5EDA  29A4 6109 2E85 B722 7189
Merge: c33429b 04b8717
Author: A U Thor <author@example.com>
Date:   Wed Jun 15 09:13:29 2016 +0000
    Merge tag 'signedtag' into downstream
    signed tag
    signed tag message body
    # gpg: Signature made Wed Jun 15 08:56:46 2016 UTC using RSA key ID B7227189
    # gpg: Good signature from "Eris Discordia <discord@example.net>"
    # gpg: WARNING: This key is not certified with a trusted signature!
    # gpg:          There is no indication that the signature belongs to the owner.
    # Primary key fingerprint: D4BE 2231 1AD3 131E 5EDA  29A4 6109 2E85 B722 7189

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

2026-06-29 Git 2.55.0