| GIT-REFLOG(1) | Git Manual | GIT-REFLOG(1) |
نام (NAME)
git-reflog - مدیریت اطلاعات وقایعنگار ارجاعات (reflog)
خلاصه دستور (SYNOPSIS)
git reflog [show] [<log-options>] [<ref>]
git reflog list
git reflog exists <ref>
git reflog write <ref> <old-oid> <new-oid> <message>
git reflog delete [--rewrite] [--updateref]
[--dry-run | -n] [--verbose] <ref>@{<specifier>}...
git reflog drop [--all [--single-worktree] | <refs>...]
git reflog expire [--expire=<time>] [--expire-unreachable=<time>]
[--rewrite] [--updateref] [--stale-fix]
[--dry-run | -n] [--verbose] [--all [--single-worktree] | <refs>...]
توضیحات (DESCRIPTION)
این دستور اطلاعات ثبتشده در وقایعنگارهای ارجاع (reflogs) را مدیریت میکند.
لاگهای ارجاع یا «reflogs»، زمان بهروزرسانی رأس شاخهها و سایر ارجاعات در مخزن محلی را ثبت میکنند. وقایعنگارهای ارجاع در دستورات مختلف گیت برای مشخص کردن مقدار پیشین یک ارجاع کاربرد دارند. برای نمونه، HEAD@{2} به معنای «محل اشاره HEAD در دو جابهجایی قبل»، master@{one.week.ago} به معنای «محل اشاره شاخه master در یک هفته پیش در این مخزن محلی» و مواردی از این دست است. برای جزئیات بیشتر به gitrevisions(7) مراجعه کنید.
این دستور زیردستورهای گوناگونی را میپذیرد و بر پایه هر زیردستور گزینههای متفاوتی دارد:
زیردستور «show» (که در صورت عدم مشخص کردن هیچ زیردستوری حالت پیشفرض نیز هست) لاگ ارجاع ارائهشده در خط فرمان (یا به صورت پیشفرض HEAD) را نمایش میدهد. وقایعنگار ارجاع تمامی اقدامات اخیر را پوشش میدهد و علاوه بر آن، وقایعنگار HEAD تعویض شاخهها را نیز ثبت میکند. دستور git reflog show یک نام مستعار برای git log -g --abbrev-commit --pretty=oneline است؛ برای اطلاعات بیشتر به git-log(1) مراجعه کنید.
زیردستور «list» تمام ارجاعاتی را که دارای وقایعنگار ارجاع (reflog) متناظر هستند فهرست میکند.
زیردستور «exists» بررسی میکند که آیا یک ارجاع دارای reflog است یا خیر. در صورت وجود reflog با وضعیت صفر و در غیر این صورت با وضعیتی غیرصفر خارج میشود.
زیردستور «write» یک مدخل منفرد در وقایعنگار ارجاعِ ارائهشده مینویسد. این مدخل تازه به وقایعنگار ارجاع ضمیمه شده و بنابراین به جدیدترین مدخل تبدیل خواهد شد. نام ارجاع باید بهطور کامل مشخص شده باشد (fully qualified). شناسههای شیء (object ID) قدیم و جدید نباید خلاصه شده باشند و باید به اشیاء موجود اشاره کنند. پیام reflog استانداردسازی (نرمالسازی) میشود.
زیردستور «delete» مدخلهای منفرد را از وقایعنگار ارجاع حذف میکند، اما خود وقایعنگار را پاک نمیکند. آرگومان آن باید یک مدخل دقیق باشد (مانند «git reflog delete master@{2}»). این زیردستور نیز معمولاً مستقیماً توسط کاربران نهایی استفاده نمیشود.
زیردستور «drop» وقایعنگار ارجاع را برای ارجاعات مشخصشده به طور کامل حذف میکند. این در تضاد با «expire» و «delete» است که هر دو برای حذف مدخلهای reflog به کار میروند، اما خود reflog را حذف نمیکنند.
زیردستور «expire» مدخلهای قدیمیترِ وقایعنگار ارجاع را هرس میکند. مدخلهای قدیمیتر از زمان expire، یا مدخلهای قدیمیتر از زمان expire-unreachable که از نوک فعلی شاخه قابل دسترسی نیستند، از وقایعنگار ارجاع حذف میشوند. این زیردستور معمولاً مستقیماً توسط کاربران نهایی استفاده نمیشود — در عوض، به git-gc(1) مراجعه کنید.
گزینهها (OPTIONS)
گزینههای show (Options for show)
دستور git reflog show هر یک از گزینههای پذیرفتهشده توسط git log را میپذیرد.
گزینههای delete (Options for delete)
دستور git reflog delete گزینههای --updateref، --rewrite، -n، --dry-run و --verbose را با همان معانی به کار رفته در expire میپذیرد.
گزینههای drop (Options for drop)
--all
--single-worktree
گزینههای expire (Options for expire)
--all
--single-worktree
--expire=<time>
--expire-unreachable=<time>
--updateref
--rewrite
--stale-fix
این محاسبه شامل پیمایش تمام اشیاء قابل دسترسی است، یعنی هزینهای هماندازه با git prune دارد. این گزینه در درجه اول برای رفع خرابیهای ناشی از جمعآوری زباله (garbage collection) با استفاده از نسخههای قدیمیتر گیت در نظر گرفته شده است، که از اشیاء ارجاعشده توسط reflogها محافظت نمیکردند.
-n, --dry-run
--verbose
همچنین ببینید (SEE ALSO)
گیت (GIT)
بخشی از مجموعه git(1)
| 2026-06-29 | Git 2.55.0 |