| GIT-RESTORE(1) | دستورات عمومی کاربر | GIT-RESTORE(1) |
نام (NAME)
git-restore - بازیابی فایلهای درخت کاری
خلاصه دستور (SYNOPSIS)
git restore [<options>] [--source=<tree>] [--staged] [--worktree] [--] <pathspec>... git restore [<options>] [--source=<tree>] [--staged] [--worktree] --pathspec-from-file=<file> [--pathspec-file-nul] git restore (-p|--patch) [<options>] [--source=<tree>] [--staged] [--worktree] [--] [<pathspec>...]
توضیحات (DESCRIPTION)
مسیرهای مشخصشده در درخت کاری را با محتوایی از یک منبع بازیابی بازمیگرداند. اگر مسیری ردیابی شده باشد اما در منبع بازیابی وجود نداشته باشد، برای تطابق با منبع حذف خواهد شد.
همچنین از این دستور میتوان برای بازیابی محتوا در ایندکس با گزینه --staged، یا بازیابی همزمان درخت کاری و ایندکس با گزینههای --staged --worktree استفاده کرد.
بهطور پیشفرض، اگر --staged مشخص شود، محتویات از HEAD بازیابی میشوند، در غیر این صورت از ایندکس بازیابی خواهند شد. برای بازیابی از یک کامیت متفاوت از --source استفاده کنید.
برای آگاهی از تفاوتهای میان این سه دستور، به بخش «Reset, restore and revert» در git(1) مراجعه کنید.
گزینهها (OPTIONS)
-s <tree>, --source=<tree>
در صورت عدم تعیین، چنانچه --staged مشخص شده باشد محتویات از HEAD و در غیر این صورت از ایندکس بازیابی میشوند.
به عنوان یک حالت ویژه، میتوانید از "<rev-A>...<rev-B>" به عنوان میانبری برای پایه ادغام (merge base) <rev-A> و <rev-B> در صورتی که دقیقاً یک پایه ادغام وجود داشته باشد، استفاده کنید. شما میتوانید حداکثر یکی از <rev-A> و <rev-B> را حذف کنید که در این صورت مقدار پیشفرض آن HEAD خواهد بود.
-p, --patch
-U<n>, --unified=<n>
--inter-hunk-context=<n>
-W, --worktree, -S, --staged
-q, --quiet
--progress, --no-progress
--ours, --theirs
توجه داشته باشید که در طول اجرای git rebase و git pull --rebase، ممکن است ours و theirs جابهجا به نظر برسند. برای جزئیات به توضیح همین گزینهها در git-checkout(1) مراجعه کنید.
-m, --merge
--conflict=<style>
--ignore-unmerged
--ignore-skip-worktree-bits
--recurse-submodules, --no-recurse-submodules
--overlay, --no-overlay
--pathspec-from-file=<file>
--pathspec-file-nul
--
<pathspec>...
برای جزئیات بیشتر، به مدخل pathspec در gitglossary(7) مراجعه کنید.
مثالها (EXAMPLES)
توالی زیر به شاخه master تغییر وضعیت میدهد، فایل Makefile را به دو بازنگری قبل بازمیگرداند، فایل hello.c را به اشتباه حذف میکند و آن را از ایندکس بازیابی مینماید.
$ git switch master $ git restore --source master~2 Makefile (1) $ rm -f hello.c $ git restore hello.c (2)
| 1. | استخراج یک فایل از کامیتی دیگر |
| 2. | بازیابی hello.c از ایندکس |
اگر بخواهید تمام فایلهای سورس C را برای مطابقت با نسخه موجود در ایندکس بازیابی کنید، میتوانید بنویسید:
$ git restore '*.c'
به علامتهای نقلقول در اطراف *.c توجه کنید. فایل hello.c نیز بازیابی خواهد شد، حتی اگر دیگر در درخت کاری وجود نداشته باشد، زیرا تطبیق الگو (globbing) برای تطبیق با ورودیهای ایندکس استفاده میشود (نه در درخت کاری توسط شل).
برای بازیابی تمام فایلهای دایرکتوری فعلی:
$ git restore .
یا برای بازیابی تمام فایلهای درخت کاری با جادوی top در pathspec (به gitglossary(7) مراجعه کنید):
$ git restore :/
برای بازیابی یک فایل در ایندکس به گونهای که با نسخه موجود در HEAD مطابقت پیدا کند (این معادل استفاده از git-reset(1) است):
$ git restore --staged hello.c
یا میتوانید هم ایندکس و هم درخت کاری را بازیابی کنید (این معادل استفاده از git-checkout(1) است):
$ git restore --source=HEAD --staged --worktree hello.c
یا فرم کوتاه آن که کاربردیتر ولی کمتر خواناست:
$ git restore -s@ -SW hello.c
همچنین ببینید (SEE ALSO)
گیت (GIT)
بخشی از مجموعه git(1)
| 2026-06-29 | Git 2.55.0 |