GIT-SHOW-BRANCH(1) Git Manual GIT-SHOW-BRANCH(1)

git-show-branch - نمایش شاخه‌ها و کامیت‌های آن‌ها

git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]
                [--current] [--color[=<when>] | --no-color] [--sparse]
                [--more=<n> | --list | --independent | --merge-base]
                [--no-name | --sha1-name] [--topics]
                [(<rev> | <glob>)...]
git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]

گراف پیشینه کامیت‌ها (commit ancestry graph) را با شروع از کامیت‌های نام‌برده با <rev>ها یا <glob>ها (یا تمام ارجاع‌های زیر refs/heads و/یا refs/tags) به صورت شبه‌بصری نمایش می‌دهد.

این دستور نمی‌تواند همزمان بیش از ۲۶ شاخه و کامیت را نمایش دهد.

در صورتی که هیچ <rev> یا <glob> در خط فرمان مشخص نشده باشد، از مقادیر چندگانه پیکربندی showbranch.default استفاده می‌کند.

<rev>

یک عبارت دلخواه SHA-1 بسط‌یافته (نگاه کنید به gitrevisions(7)) که معمولاً نام سرشاخه یا تگ است.

<glob>

یک الگوی glob که با نام شاخه‌ها یا تگ‌های زیر refs/ مطابقت دارد. برای نمونه، اگر شاخه‌های موضوعی زیادی زیر refs/heads/topic دارید، دادن topic/* تمام آن‌ها را نمایش خواهد داد.

-r, --remotes

نمایش شاخه‌های ردیابی دوردست (remote-tracking branches).

-a, --all

نمایش همزمان شاخه‌های ردیابی دوردست و شاخه‌های محلی.

--current

با این گزینه، در صورتی که شاخه جاری در خط فرمان داده نشده باشد، دستور آن را در فهرست revهای نمایشی می‌گنجاند.

--topo-order

به‌طور پیش‌فرض، شاخه‌ها و کامیت‌های آن‌ها به ترتیب معکوس زمانی نمایش داده می‌شوند. این گزینه باعث می‌شود که آن‌ها به ترتیب توپولوژیکی ظاهر شوند (یعنی کامیت‌های فرزند قبل از والدین خود نمایش داده شوند).

--date-order

این گزینه مشابه --topo-order است از این حیث که هیچ والدی قبل از تمام فرزندانش نمی‌آید، اما در سایر موارد کامیت‌ها بر اساس تاریخ کامیت مرتب می‌شوند.

--sparse

به‌طور پیش‌فرض، خروجی کامیت‌های ادغامی (merges) را که تنها از یک سرشاخه نمایشی قابل دستیابی هستند نادیده می‌گیرد. این گزینه آن‌ها را قابل مشاهده می‌کند.

--more=<n>

معمولاً دستور با نمایش کامیتی که جد مشترک تمام شاخه‌ها است خروجی را متوقف می‌کند. این فلگ به دستور می‌گوید که <n> کامیت مشترک دیگر فراتر از آن را نیز نمایش دهد. هنگامی که <n> منفی باشد، تنها <ref>های داده‌شده را بدون نمایش درخت پیشینه کامیت‌ها نمایش می‌دهد.

--list

مترادف برای --more=-1 است.

--merge-base

به جای نمایش فهرست کامیت‌ها، پایه‌های ادغام (merge bases) ممکن را برای کامیت‌های مشخص‌شده تعیین می‌کند. تمام پایه‌های ادغام در تمام کامیت‌های مشخص‌شده وجود خواهند داشت. این رفتار با نحوه مدیریت سه یا چند کامیت در git-merge-base(1) متفاوت است.

--independent

در میان <ref>های داده‌شده، تنها مواردی را نمایش می‌دهد که از هیچ <ref> دیگری قابل دسترسی نباشند.

--no-name

رشته‌های نام‌گذاری را برای هر کامیت نمایش ندهد.

--sha1-name

به جای نام‌گذاری کامیت‌ها با استفاده از مسیر دستیابی به آن‌ها از سرشاخه‌ها (مانند "master~2" به معنای پدربزرگ "master")، آن‌ها را با پیشوند منحصربه‌فرد نام‌های شیءشان نام‌گذاری کند.

--topics

تنها کامیت‌هایی را نمایش می‌دهد که روی اولین شاخه مشخص‌شده نیستند. این کار با پنهان کردن هر کامیتی که از قبل در خط اصلی توسعه قرار دارد، به ردیابی شاخه‌های موضوعی کمک می‌کند. با اجرای "git show-branch --topics master topic1 topic2";، تجدیدنظرهایی که با "git rev-list ^master topic1 topic2" مشخص می‌شوند نمایش داده خواهند شد.

-g, --reflog[=<n>[,<base>]] [<ref>]

تعداد <n> ورودی اخیر ref-log را برای ref مشخص‌شده نمایش می‌دهد. اگر <base> مشخص شده باشد، <n> ورودی به عقب از آن ورودی نمایش داده می‌شود. پارامتر <base> می‌تواند به عنوان شمارش یا تاریخ مشخص شود. هنگامی که پارامتر صریح <ref> داده نشود، پیش‌فرض آن شاخه جاری است (یا HEAD در صورتی که جدا (detached) شده باشد).

--color[=<when>]

رنگ‌آمیزی علامت وضعیت (یکی از این موارد: * ! + -) برای هر کامیت متناسب با شاخه‌ای که در آن قرار دارد. مقدار باید یکی از always (پیش‌فرض)، never، یا auto باشد.

--no-color

خاموش کردن خروجی رنگی، حتی زمانی که فایل پیکربندی پیش‌فرض را روی خروجی رنگی قرار داده باشد. معادل --color=never است.

توجه داشته باشید که گزینه‌های --more، --list، --independent، و --merge-base مانعة‌الجمع هستند.

به ازای N عدد <ref>، اولین N خط شامل توضیح یک‌خطی از پیام کامیت آن‌ها خواهد بود. سرشاخه‌ای که توسط $GIT_DIR/HEAD به آن اشاره می‌شود با یک نویسه ستاره * به عنوان پیشوند مشخص می‌شود، در حالی که سایر سرشاخه‌ها با یک نویسه ! مشخص می‌شوند.

به دنبال این N خط، یک لاگ یک‌خطی برای هر کامیت با N نویسه تورفتگی نمایش داده می‌شود. اگر یک کامیت روی شاخه I-اُم باشد، کاراکتر تورفتگی I-اُم علامت + را نشان می‌دهد؛ در غیر این صورت یک فاصله خالی نشان داده می‌شود. کامیت‌های ادغام (merge commits) با یک علامت - مشخص می‌شوند. هر کامیت یک نام کوتاه را نمایش می‌دهد که می‌توان از آن به عنوان یک SHA-1 بسط‌یافته برای نام‌گذاری آن کامیت استفاده کرد.

مثال زیر سه شاخه "master"، "fixes"، و "mhf" را نشان می‌دهد:

$ git show-branch master fixes mhf
* [master] Add 'git show-branch'.
 ! [fixes] Introduce "reset type" flag to "git reset"
  ! [mhf] Allow "+remote:local" refspec to cause --force when fetching.
---
  + [mhf] Allow "+remote:local" refspec to cause --force when fetching.
  + [mhf~1] Use git-octopus when pulling more than one head.
 +  [fixes] Introduce "reset type" flag to "git reset"
  + [mhf~2] "git fetch --force".
  + [mhf~3] Use .git/remote/origin, not .git/branches/origin.
  + [mhf~4] Make "git pull" and "git fetch" default to origin
  + [mhf~5] Infamous 'octopus merge'
  + [mhf~6] Retire git-parse-remote.
  + [mhf~7] Multi-head fetch.
  + [mhf~8] Start adding the $GIT_DIR/remotes/ support.
*++ [master] Add 'git show-branch'.

این سه شاخه همگی از یک کامیت مشترک [master] منشعب شده‌اند که پیام کامیت آن "Add 'git show-branch'" است. شاخه "fixes" یک کامیت با عنوان "Introduce "reset type" flag to "git reset"" اضافه می‌کند. شاخه "mhf" کامیت‌های متعدد دیگری اضافه می‌کند. شاخه جاری "master" است.

اگر شاخه‌های اصلی خود را مستقیماً زیر refs/heads نگه می‌دارید و شاخه‌های موضوعی را در زیردایرکتوری‌های آن قرار می‌دهید، قرار دادن موارد زیر در فایل پیکربندی می‌تواند مفید باشد:

[showbranch]
        default = --topo-order
        default = heads/*

با این کار، دستور git show-branch بدون پارامترهای اضافی تنها شاخه‌های اصلی را نمایش می‌دهد. علاوه بر این، اگر تصادفاً روی شاخه موضوعی خود باشید، آن شاخه نیز نمایش داده می‌شود.

$ git show-branch --reflog="10,1 hour ago" --list master

تعداد ۱۰ ورودی reflog را از سرشاخه به عقب تا ۱ ساعت پیش نمایش می‌دهد. بدون گزینه --list، خروجی همچنین نشان می‌دهد که این سرشاخه‌ها چگونه از نظر توپولوژیکی به یکدیگر مرتبط هستند.

تمامی موارد زیر این خط در این بخش، به‌صورت گزینشی از مستندات git-config(1) گنجانده شده‌اند. محتوا همان چیزی است که در آنجا یافت می‌شود:

showBranch.default

مجموعه پیش‌فرض شاخه‌ها برای git-show-branch(1). به git-show-branch(1) مراجعه کنید.

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

2026-06-29 Git 2.55.0