GIT-SYMBOLIC-REF(1) راهنمای گیت GIT-SYMBOLIC-REF(1)

git-symbolic-ref - خواندن، تغییر و حذف ارجاع‌های نمادین

git symbolic-ref [-m <reason>] <name> <ref>
git symbolic-ref [-q] [--short] [--no-recurse] <name>
git symbolic-ref --delete [-q] <name>

با دریافت یک آرگومان، بررسی می‌کند که ارجاع نمادین داده‌شده به کدام سرشاخه اشاره دارد و مسیر آن را نسبت به دایرکتوری .git/ چاپ می‌کند. به طور معمول شما HEAD را به عنوان آرگومان <name> مشخص می‌کنید تا ببینید درخت کاری شما روی کدام شاخه قرار دارد.

با دریافت دو آرگومان، ارجاع نمادین <name> را ایجاد کرده یا به‌روزرسانی می‌کند تا به شاخه <ref> مشخص‌شده اشاره کند.

با دریافت --delete و یک آرگومان اضافی، ارجاع نمادین داده‌شده را حذف می‌کند.

یک ارجاع نمادین، فایلی معمولی است که رشته‌ای با پیشوند ref: refs/ را در خود ذخیره می‌کند. برای نمونه، فایل .git/HEAD شما یک فایل معمولی است که محتوای آن ref: refs/heads/master می‌باشد.

-d, --delete

ارجاع نمادین <name> را حذف می‌کند.

-q, --quiet

اگر <name> یک ارجاع نمادین نبوده بلکه یک وضعیت HEAD جداشده (detached HEAD) باشد، هیچ پیام خطایی صادر نمی‌کند؛ در عوض بی‌صدا با وضعیتی غیرصفر خارج می‌شود.

--short

هنگام نمایش مقدار <name> به عنوان یک ارجاع نمادین، تلاش می‌کند مقدار را کوتاه کند، برای نمونه از refs/heads/master به master.

--recurse, --no-recurse

هنگام نمایش مقدار <name> به عنوان یک ارجاع نمادین، اگر <name> به ارجاع نمادین دیگری اشاره کند، این زنجیره از ارجاع‌های نمادین را تا جایی دنبال می‌کند که نتیجه دیگر به یک ارجاع نمادین اشاره نکند (--recurse، که رفتار پیش‌فرض است). --no-recurse تنها پس از یک مرحله ارجاع‌زدایی از ارجاع نمادین متوقف می‌شود.

-m

وقایع‌نگار ارجاع (reflog) مربوط به <name> را با <reason> به‌روزرسانی می‌کند. این گزینه تنها هنگام ایجاد یا به‌روزرسانی یک ارجاع نمادین معتبر است.

در گذشته، .git/HEAD یک پیوند نمادین بود که به refs/heads/master اشاره می‌کرد. هنگامی که می‌خواستیم به شاخه دیگری برویم، دستور ln -sf refs/heads/newbranch .git/HEAD را اجرا می‌کردیم، و وقتی می‌خواستیم بدانیم روی کدام شاخه هستیم، دستور readlink .git/HEAD را به کار می‌بردیم. اما پیوندهای نمادین کاملاً سازگار و قابل‌حمل نیستند، به همین دلیل اکنون منسوخ شده‌اند و به طور پیش‌فرض از ارجاع‌های نمادین (همان‌گونه که در بالا توصیف شد) استفاده می‌شود.

دستور git symbolic-ref در صورتی که محتوای ارجاع نمادین به درستی چاپ شود با وضعیت 0، اگر نام درخواستی یک ارجاع نمادین نباشد با وضعیت 1، و در صورت بروز هر خطای دیگری با وضعیت 128 خارج خواهد شد.

git-update-ref(1)

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

2026-06-29 Git 2.55.0