| GIT-PATCH-ID(1) | Git Manual | GIT-PATCH-ID(1) |
نام (NAME)
git-patch-id - محاسبه شناسه یکتا برای وصلهها
خلاصه دستور (SYNOPSIS)
git patch-id [--stable | --unstable | --verbatim]
توضیحات (DESCRIPTION)
وصلهها را از ورودی استاندارد میخواند و شناسه وصله (patch ID) را محاسبه میکند.
یک «شناسه وصله» چیزی جز مجموع SHA-1 از تفاوتهای فایلی مرتبط با یک وصله با صرفنظر از شماره خطوط نیست. به این ترتیب، «تا حد معقولی پایدار» و در عین حال به اندازه کافی یکتا است؛ یعنی تضمین میشود دو وصلهای که «شناسه وصله» یکسانی دارند تقریباً مطمئناً یکی هستند.
کاربرد اصلی این دستور جستجو برای یافتن کامیتهای تکراری احتمالی است.
هنگام کار با خروجی git diff-tree --patch، این دستور از این واقعیت که پیش از وصله نام شیء کامیت قرار دارد بهره میبرد و دو رشته هگزادسیمال ۴۰ بایتی خروجی میدهد. رشته اول شناسه وصله و رشته دوم شناسه کامیت است. از این قابلیت میتوان برای ایجاد یک نگاشت میان شناسه وصله و شناسه کامیت برای مجموعهای یا بازهای از کامیتها استفاده کرد.
گزینهها (OPTIONS)
--verbatim
اگر مقدار patchid.verbatim برابر true باشد، این حالت پیشفرض است.
--stable
اگر patchid.stable روی true تنظیم شده باشد، این حالت پیشفرض است.
--unstable
این گزینه پیشفرض است.
مثالها (EXAMPLES)
دستور git-cherry(1) نشان میدهد چه کامیتهایی از یک شاخه دارای کامیتهای معادل شناسه وصله در شاخهای بالادست هستند. اما فقط به شما میگوید که آیا چنین کامیتی وجود دارد یا خیر. اگر بخواهید کامیتهای مربوطه را در بالادست بدانید چه؟ میتوانیم از این دستور برای ایجاد یک نگاشت میان شاخه شما و شاخه بالادست استفاده کنیم:
#!/bin/sh
upstream="$1"
branch="$2"
test -z "$branch" && branch=HEAD
limit="$3"
if test -n "$limit"
then
tail_opts="$limit".."$upstream"
else
since=$(git log --format=%aI "$upstream".."$branch" | tail -1)
tail_opts=--since="$since"' '"$upstream"
fi
for_branch=$(mktemp)
for_upstream=$(mktemp)
git rev-list --no-merges "$upstream".."$branch" |
git diff-tree --patch --stdin |
git patch-id --stable | sort >"$for_branch"
git rev-list --no-merges $tail_opts |
git diff-tree --patch --stdin |
git patch-id --stable | sort >"$for_upstream"
join -a1 "$for_branch" "$for_upstream" | cut -d' ' -f2,3
rm "$for_branch"
rm "$for_upstream"
اکنون ستون اول کامیت مربوط به شاخه شما را نشان میدهد و ستون دوم کامیت معادل شناسه وصله را در صورت وجود نمایش میدهد.
همچنین ببینید (SEE ALSO)
گیت (GIT)
بخشی از مجموعه git(1)
| 2026-06-29 | Git 2.55.0 |