'\" t .\" Title: git-check-ref-format .\" 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: English .\" .TH "GIT\-CHECK\-REF\-FORMAT" "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-check-ref-format \- اطمینان از ساختار صحیح و معتبر بودن نام یک ارجاع .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fIgit check\-ref\-format\fR [\-\-normalize] [\-\-[no\-]allow\-onelevel] [\-\-refspec\-pattern] \fIgit check\-ref\-format\fR \-\-branch .fi .sp .SH "توضیحات (DESCRIPTION)" .sp بررسی می‌کند که آیا یک \fIrefname\fR (نام ارجاع) مشخص قابل قبول است یا خیر، و اگر نباشد با وضعیت غیرصفر خارج می‌شود\&. .sp در گیت از یک ارجاع برای مشخص کردن شاخه‌ها و برچسب‌ها استفاده می‌شود\&. نوک یک شاخه در سلسله‌مراتب \fBrefs/heads\fR ذخیره می‌شود، در حالی که یک برچسب در سلسله‌مراتب \fBrefs/tags\fR از فضای‌نام ارجاع نگهداری می‌گردد (معمولاً در دایرکتوری‌های \fB$GIT_DIR/refs/heads\fR و \fB$GIT_DIR/refs/tags\fR یا در صورت بسته‌بندی ارجاع‌ها توسط \fBgit\fR \fBgc\fR، به عنوان ورودی‌هایی در فایل \fB$GIT_DIR/packed\-refs\fR)\&. .sp گیت قوانین زیر را در نحوه نام‌گذاری ارجاع‌ها اعمال می‌کند: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} آن‌ها می‌توانند شامل اسلش \fB/\fR برای دسته‌بندی سلسله‌مراتبی (دایرکتوری) باشند، اما هیچ مؤلفه جداشده با اسلش نمی‌تواند با یک نقطه \&. شروع شود یا به توالی \fB\&.lock\fR ختم گردد\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} آن‌ها باید حداقل شامل یک \fB/\fR باشند\&. این امر وجود یک دسته‌بندی مانند \fBheads/\fR، \fBtags/\fR و غیره را الزامی می‌کند، اما نام‌های واقعی محدودیتی ندارند\&. اگر از گزینه \fB\-\-allow\-onelevel\fR استفاده شود، این قانون نادیده گرفته می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} آن‌ها نمی‌توانند در هیچ‌کجای خود دو نقطه متوالی \&.\&. داشته باشند\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} آن‌ها نمی‌توانند در هیچ‌کجای خود نویسه‌های کنترلی اسکی (یعنی بایت‌هایی با مقدار کمتر از \e040 یا \e177 \fBDEL\fR)، فاصله، مدک (تیلدا) \fB~\fR، هشتک (کارِت) \fB^\fR، یا دونقطه \fB:\fR داشته باشند\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 5.\h'+01'\c .\} .el \{\ .sp -1 .IP " 5." 4.2 .\} آن‌ها نمی‌توانند در هیچ‌کجای خود علامت سوال ?، ستاره \fB*\fR، یا براکت باز [ داشته باشند\&. برای استثنای این قانون به گزینه \fB\-\-refspec\-pattern\fR در زیر مراجعه کنید\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 6.\h'+01'\c .\} .el \{\ .sp -1 .IP " 6." 4.2 .\} آن‌ها نمی‌توانند با یک اسلش \fB/\fR شروع یا تمام شوند، یا شامل چندین اسلش متوالی باشند (برای استثنای این قانون به گزینه \fB\-\-normalize\fR در زیر مراجعه کنید)\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 7.\h'+01'\c .\} .el \{\ .sp -1 .IP " 7." 4.2 .\} آن‌ها نمی‌توانند با یک نقطه \&. به پایان برسند\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 8.\h'+01'\c .\} .el \{\ .sp -1 .IP " 8." 4.2 .\} آن‌ها نمی‌توانند شامل توالی \fB@\fR{ باشند\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 9.\h'+01'\c .\} .el \{\ .sp -1 .IP " 9." 4.2 .\} آن‌ها نمی‌توانند تک‌نویسه \fB@\fR باشند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'10.\h'+01'\c .\} .el \{\ .sp -1 .IP "10." 4.2 .\} آن‌ها نمی‌توانند شامل یک \fB\e\fR باشند\&. .RE .sp این قوانین تجزیه نام‌های ارجاع را برای ابزارهای مبتنی بر اسکریپت شل، بسط نام مسیر توسط شل هنگامی که نام ارجاع بدون گیومه (به اشتباه) استفاده شده باشد، آسان‌تر کرده و همچنین از ابهامات در برخی عبارت‌های نام ارجاع جلوگیری می‌کنند (به \fBgitrevisions\fR(7) مراجعه کنید): .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} دو نقطه متوالی \&.\&. اغلب مانند \fBref1\fR\fB\&.\&.\fR\fBref2\fR استفاده می‌شود و در برخی زمینه‌ها این نمادگذاری به معنای \fB^ref1\fR \fBref2\fR است (یعنی در \fBref1\fR نباشد و در \fBref2\fR باشد)\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} مدک (تیلدا) \fB~\fR و هشتک (کارِت) \fB^\fR برای معرفی پسوند والد N\-ام (\fInth parent\fR) و عملیات پوست کندن پیاز (\fIpeel onion\fR) استفاده می‌شوند\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} دونقطه \fB:\fR مانند \fBsrcref:dstref\fR در عملیات واکشی (fetch) و ارسال (push) به معنای «استفاده از مقدار srcref و ذخیره آن در dstref» به کار می‌رود\&. همچنین ممکن است برای انتخاب یک شیء مشخص مانند \fIgit cat\-file\fR استفاده شود: "git cat\-file blob v1\&.3\&.3:refs\&.c"\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} آکولاد باز پس از ات‌ساین \fB@\fR{ به عنوان نمادگذاری برای دسترسی به یک ورودی reflog استفاده می‌شود\&. .RE .sp با گزینه \fB\-\-branch\fR، این دستور یک نام را می‌گیرد و بررسی می‌کند که آیا می‌توان از آن به عنوان یک نام شاخه معتبر استفاده کرد یا خیر (مثلاً هنگام ایجاد یک شاخه جدید)\&. اما هنگام استفاده از نحو بررسی پیشین (previous checkout syntax) که ممکن است به وضعیت سر جداشده (detached HEAD) اشاره کند، محتاط باشید\&. قانونی که \fBgit\fR \fBcheck\-ref\-format\fR \fB\-\-branch\fR \fB$name\fR پیاده‌سازی می‌کند ممکن است سخت‌گیرانه‌تر از آن چیزی باشد که \fBgit\fR \fBcheck\-ref\-format\fR \fBrefs/heads/$name\fR اعلام می‌دارد (برای مثال، خط تیره ممکن است در ابتدای یک مؤلفه ارجاع ظاهر شود، اما در ابتدای نام شاخه صراحتاً ممنوع است)\&. هنگام اجرا با گزینه \fB\-\-branch\fR در یک مخزن، ورودی ابتدا برای نحو «بررسی پیشین» \fB@\fR{\-n} بسط می‌یابد\&. به عنوان مثال، \fB@\fR{\-1} روشی برای اشاره به آخرین موردی است که با استفاده از عملیات "git switch" یا "git checkout" خارج شده است\&. این گزینه باید توسط ابزارهای سطح بالاتر (porcelains) برای پذیرش این نحو در هر جایی که نام شاخه انتظار می‌رود استفاده شود تا بتوانند به گونه‌ای عمل کنند که گویی شما نام شاخه را تایپ کرده‌اید\&. به عنوان یک استثنا توجه داشته باشید که عملیات «بررسی پیشین» ممکن است زمانی که N\-امین مورد قبلی بررسی‌شده یک شاخه نبوده، به نام یک شیء کامیت ختم شود\&. .SH "گزینه‌ها (OPTIONS)" .PP \-\-allow\-onelevel, \-\-no\-allow\-onelevel .RS 4 کنترل اینکه آیا نام‌های ارجاع تک‌سطحی پذیرفته شوند یا خیر (یعنی نام‌های ارجاعی که شامل چندین مؤلفه جداشده با \fB/\fR نیستند)\&. مقدار پیش‌فرض \fB\-\-no\-allow\-onelevel\fR است\&. .RE .PP \-\-refspec\-pattern .RS 4 تفسیر به عنوان الگوی نام ارجاع برای یک مشخصه ارجاع (refspec \- همان‌طور که با مخازن دوردست استفاده می‌شود)\&. اگر این گزینه فعال باشد، مجاز است شامل یک ستاره تکی \fB*\fR در refspec باشد (مانند \fBfoo/bar*/baz\fR یا \fBfoo/bar*baz/\fR اما نه \fBfoo/bar*/baz*\fR)\&. .RE .PP \-\-normalize .RS 4 نرمال‌سازی \fIrefname\fR با حذف نویسه‌های اسلش (\fB/\fR) ابتدایی و ادغام اسلش‌های متوالی بین مؤلفه‌های نام به یک اسلش واحد\&. اگر نام ارجاع نرمال‌شده معتبر باشد، آن را در خروجی استاندارد چاپ کرده و با وضعیت 0 خارج می‌شود، در غیر این صورت با وضعیت غیرصفر خارج خواهد شد\&. (\fB\-\-print\fR روشی منسوخ‌شده برای نوشتن \fB\-\-normalize\fR است\&.) .RE .SH "مثال‌ها (EXAMPLES)" .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} چاپ نام آخرین موردی که خارج (checked out) شده است: .sp .if n \{\ .RS 4 .\} .nf $ git check\-ref\-format \-\-branch @{\-1} .fi .if n \{\ .RE .\} .sp .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} تعیین نام ارجاع برای استفاده در یک شاخه جدید: .sp .if n \{\ .RS 4 .\} .nf $ ref=$(git check\-ref\-format \-\-normalize "refs/heads/$newbranch")|| { echo "we do not like \*(Aq$newbranch\*(Aq as a branch name\&." >&2 ; exit 1 ; } .fi .if n \{\ .RE .\} .sp .RE .SH "گیت (GIT)" .sp بخشی از مجموعه \fBgit\fR(1)