| GIT-REMOTE(1) | دستورات عمومی کاربر | GIT-REMOTE(1) |
نام (NAME)
git-remote - مدیریت مجموعه مخازن ردیابیشده دوردست
خلاصه دستور (SYNOPSIS)
git remote [-v | --verbose] git remote add [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=(fetch|push)] <name> <URL> git remote rename [--[no-]progress] <old> <new> git remote remove <name> git remote set-head <name> (-a | --auto | -d | --delete | <branch>) git remote set-branches [--add] <name> <branch>... git remote get-url [--push] [--all] <name> git remote set-url [--push] <name> <newurl> [<oldurl>] git remote set-url --add [--push] <name> <newurl> git remote set-url --delete [--push] <name> <URL> git remote [-v | --verbose] show [-n] <name>... git remote prune [-n | --dry-run] <name>... git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]
توضیحات (DESCRIPTION)
مدیریت مجموعهای از مخازن («remotes» یا مخازن دوردست) که شاخههای آنها را ردیابی میکنید.
گزینهها (OPTIONS)
-v, --verbose
دستورها (COMMANDS)
بدون هیچ آرگومانی، فهرستی از مخازن دوردست موجود را نمایش میدهد. چندین زیردستور برای انجام عملیات روی مخازن دوردست در دسترس است.
add
با گزینه -f، دستور git fetch <name> بلافاصله پس از تنظیم اطلاعات مخزن دوردست اجرا میشود.
با گزینه --tags، دستور git fetch <name> تمام برچسبها را از مخزن دوردست وارد میکند.
با گزینه --no-tags، دستور git fetch <name> برچسبها را از مخزن دوردست وارد نمیکند.
بهطور پیشفرض، فقط برچسبهای موجود در شاخههای دریافتشده وارد میشوند (نگاه کنید به git-fetch(1)).
با گزینه -t <branch>، به جای الگوی پیشفرض glob refspec برای مخزن دوردست جهت ردیابی تمام شاخههای زیر فضای نام refs/remotes/<name>/، یک refspec برای ردیابی فقط <branch> ایجاد میشود. میتوانید بیش از یک -t <branch> را برای ردیابی چندین شاخه بدون دریافت همه شاخهها مشخص کنید.
با گزینه -m <master>، یک ارجاع نمادین (symbolic-ref) refs/remotes/<name>/HEAD تنظیم میشود تا به شاخه <master> مخزن دوردست اشاره کند. همچنین دستور set-head را ببینید.
هنگامی که با --mirror=fetch یک آینه دریافت (fetch mirror) ایجاد میشود، ارجاعها در فضای نام refs/remotes/ ذخیره نخواهند شد، بلکه همه چیز در refs/ مخزن دوردست مستقیماً در refs/ مخزن محلی آینهسازی میشود. این گزینه فقط در مخازن bare کاربرد دارد، زیرا یک fetch هرگونه کامیت محلی را بازنویسی میکند.
هنگامی که با --mirror=push یک آینه ارسال (push mirror) ایجاد میشود، آنگاه git push همیشه بهگونهای رفتار خواهد کرد که گویی --mirror ارسال شده است.
rename
در صورتی که <old> و <new> یکسان باشند، و <old> فایلی در زیر $GIT_DIR/remotes یا $GIT_DIR/branches باشد، مخزن دوردست به قالب فایل پیکربندی تبدیل میشود.
remove, rm
set-head
با -d یا --delete، ارجاع نمادین refs/remotes/<name>/HEAD حذف میشود.
با -a یا --auto، از مخزن دوردست برای تعیین HEAD آن استعلام میشود، سپس ارجاع نمادین refs/remotes/<name>/HEAD روی همان شاخه تنظیم میگردد؛ مثلاً اگر HEAD مخزن دوردست به next اشاره داشته باشد، دستور git remote set-head origin -a ارجاع نمادین refs/remotes/origin/HEAD را روی refs/remotes/origin/next تنظیم خواهد کرد. این تنها در صورتی کار خواهد کرد که refs/remotes/origin/next از قبل وجود داشته باشد؛ در غیر این صورت ابتدا باید دریافت (fetch) شود.
از <branch> برای تنظیم صریح ارجاع نمادین refs/remotes/<name>/HEAD استفاده کنید؛ مثلاً git remote set-head origin master ارجاع نمادین refs/remotes/origin/HEAD را روی refs/remotes/origin/master تنظیم خواهد کرد. این تنها در صورتی کار خواهد کرد که refs/remotes/origin/master از قبل وجود داشته باشد؛ در غیر این صورت ابتدا باید دریافت (fetch) شود.
set-branches
شاخههای مشخصشده بهگونهای تفسیر میشوند که گویی با گزینه -t در خط فرمان git remote add مشخص شدهاند.
با --add، به جای جایگزین کردن فهرست شاخههایی که در حال حاضر ردیابی میشوند، به آن فهرست اضافه میکند.
get-url
با --push، به جای URLهای دریافت (fetch)، نشانیهای ارسال (push) پرسوجو میشوند.
با --all، تمامی URLهای مربوط به مخزن دوردست فهرست خواهند شد.
set-url
با --push، به جای URLهای دریافت، نشانیهای ارسال دستکاری میشوند.
با --add، به جای تغییر URLهای موجود، نشانی اینترنتی جدید اضافه میشود.
با --delete، به جای تغییر URLهای موجود، تمامی URLهای مطابق با عبارت باقاعده <URL> برای مخزن دوردست <name> حذف میشوند. تلاش برای حذف تمام URLهای غیر از push یک خطا است.
توجه داشته باشید که نشانی ارسال (push URL) و نشانی دریافت (fetch URL)، با وجود اینکه میتوانند متفاوت تنظیم شوند، اما همچنان باید به یک مکان اشاره کنند. آنچه به push URL ارسال میکنید باید همان چیزی باشد که در صورت دریافت فوری از fetch URL مشاهده میکنید. اگر تلاش میکنید از یک مکان دریافت کرده (مانند مخزن بالادستی شما) و به مکان دیگری ارسال کنید (مانند مخزن انتشار خود)، از دو مخزن دوردست مجزا استفاده کنید.
show
با گزینه -n، ابتدا وضعیت headهای دوردست با دستور git ls-remote <name> استعلام نمیشود؛ بلکه به جای آن از اطلاعات ذخیرهشده در حافظه نهان استفاده میگردد.
prune
بخش PRUNING در git-fetch(1) را برای آنچه که بسته به پیکربندیهای مختلف هرس خواهد شد ببینید.
با گزینه --dry-run، گزارش میدهد چه شاخههایی هرس خواهند شد، اما در عمل آنها را هرس نمیکند.
update
با گزینه --prune، عملیات هرس را برای تمام مخازن دوردستی که بهروزرسانی میشوند اجرا میکند.
بحث و بررسی (DISCUSSION)
پیکربندی مخزن دوردست با استفاده از متغیرهای پیکربندی remote.origin.url و remote.origin.fetch انجام میشود. (نگاه کنید به git-config(1)).
وضعیت خروج (EXIT STATUS)
در صورت موفقیت، وضعیت خروج 0 است.
هنگامی که زیردستورهایی مانند add، rename و remove نتوانند مخزن دوردست مورد نظر را بیابند، وضعیت خروج 2 خواهد بود. هنگامی که مخزن دوردست از قبل وجود داشته باشد، وضعیت خروج 3 است.
در صورت وقوع هر خطای دیگری، وضعیت خروج ممکن است هر مقدار غیر صفر دیگری باشد.
مثالها (EXAMPLES)
$ git remote origin $ git branch -r origin/HEAD -> origin/master origin/master $ git remote add staging git://git.kernel.org/.../gregkh/staging.git $ git remote origin staging $ git fetch staging ... From git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging * [new branch] master -> staging/master * [new branch] staging-linus -> staging/staging-linus * [new branch] staging-next -> staging/staging-next $ git branch -r origin/HEAD -> origin/master origin/master staging/master staging/staging-linus staging/staging-next $ git switch -c staging staging/master ...
$ mkdir project.git $ cd project.git $ git init $ git remote add -f -t master -m master origin git://example.com/git.git/ $ git merge origin
همچنین ببینید (SEE ALSO)
گیت (GIT)
بخشی از مجموعه git(1)
| 2026-06-29 | Git 2.55.0 |