| GIT-CHECK-REF-FORMAT(1) | Git Manual | GIT-CHECK-REF-FORMAT(1) |
نام (NAME)
git-check-ref-format - اطمینان از ساختار صحیح و معتبر بودن نام یک ارجاع
خلاصه دستور (SYNOPSIS)
git check-ref-format [--normalize]
[--[no-]allow-onelevel] [--refspec-pattern]
<refname>
git check-ref-format --branch <branchname-shorthand>
توضیحات (DESCRIPTION)
بررسی میکند که آیا یک refname (نام ارجاع) مشخص قابل قبول است یا خیر، و اگر نباشد با وضعیت غیرصفر خارج میشود.
در گیت از یک ارجاع برای مشخص کردن شاخهها و برچسبها استفاده میشود. نوک یک شاخه در سلسلهمراتب refs/heads ذخیره میشود، در حالی که یک برچسب در سلسلهمراتب refs/tags از فضاینام ارجاع نگهداری میگردد (معمولاً در دایرکتوریهای $GIT_DIR/refs/heads و $GIT_DIR/refs/tags یا در صورت بستهبندی ارجاعها توسط git gc، به عنوان ورودیهایی در فایل $GIT_DIR/packed-refs).
گیت قوانین زیر را در نحوه نامگذاری ارجاعها اعمال میکند:
این قوانین تجزیه نامهای ارجاع را برای ابزارهای مبتنی بر اسکریپت شل، بسط نام مسیر توسط شل هنگامی که نام ارجاع بدون گیومه (به اشتباه) استفاده شده باشد، آسانتر کرده و همچنین از ابهامات در برخی عبارتهای نام ارجاع جلوگیری میکنند (به gitrevisions(7) مراجعه کنید):
با گزینه --branch، این دستور یک نام را میگیرد و بررسی میکند که آیا میتوان از آن به عنوان یک نام شاخه معتبر استفاده کرد یا خیر (مثلاً هنگام ایجاد یک شاخه جدید). اما هنگام استفاده از نحو بررسی پیشین (previous checkout syntax) که ممکن است به وضعیت سر جداشده (detached HEAD) اشاره کند، محتاط باشید. قانونی که git check-ref-format --branch $name پیادهسازی میکند ممکن است سختگیرانهتر از آن چیزی باشد که git check-ref-format refs/heads/$name اعلام میدارد (برای مثال، خط تیره ممکن است در ابتدای یک مؤلفه ارجاع ظاهر شود، اما در ابتدای نام شاخه صراحتاً ممنوع است). هنگام اجرا با گزینه --branch در یک مخزن، ورودی ابتدا برای نحو «بررسی پیشین» @{-n} بسط مییابد. به عنوان مثال، @{-1} روشی برای اشاره به آخرین موردی است که با استفاده از عملیات "git switch" یا "git checkout" خارج شده است. این گزینه باید توسط ابزارهای سطح بالاتر (porcelains) برای پذیرش این نحو در هر جایی که نام شاخه انتظار میرود استفاده شود تا بتوانند به گونهای عمل کنند که گویی شما نام شاخه را تایپ کردهاید. به عنوان یک استثنا توجه داشته باشید که عملیات «بررسی پیشین» ممکن است زمانی که N-امین مورد قبلی بررسیشده یک شاخه نبوده، به نام یک شیء کامیت ختم شود.
گزینهها (OPTIONS)
--allow-onelevel, --no-allow-onelevel
--refspec-pattern
--normalize
مثالها (EXAMPLES)
$ git check-ref-format --branch @{-1}
$ ref=$(git check-ref-format --normalize "refs/heads/$newbranch")||
{ echo "we do not like '$newbranch' as a branch name." >&2 ; exit 1 ; }
گیت (GIT)
بخشی از مجموعه git(1)
| 2026-06-29 | Git 2.55.0 |