'\" t .\" Title: git-push .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2026-06-29 .\" Manual: دستورات عمومی کاربر .\" Source: Git 2.55.0 .\" Language: Persian .\" .TH "GIT\-PUSH" "1" "2026\-06\-29" "Git 2\&.55\&.0" "دستورات عمومی کاربر" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" git-push \- به‌روزرسانی ارجاع‌های دوردست همراه با اشیاء مرتبط .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fBgit\fR \fBpush\fR [\fB\-\-all\fR | \fB\-\-branches\fR | \fB\-\-mirror\fR | \fB\-\-tags\fR] [\fB\-\-follow\-tags\fR] [\fB\-\-atomic\fR] [\fB\-n\fR | \fB\-\-dry\-run\fR] [\fB\-\-receive\-pack=\fR\fI\fR] [\fB\-\-repo=\fR\fI\fR] [\fB\-f\fR | \fB\-\-force\fR] [\fB\-d\fR | \fB\-\-delete\fR] [\fB\-\-prune\fR] [\fB\-q\fR | \fB\-\-quiet\fR] [\fB\-v\fR | \fB\-\-verbose\fR] [\fB\-u\fR | \fB\-\-set\-upstream\fR] [\fB\-o\fR \fI\fR | \fB\-\-push\-option=\fR\fI\fR] [\fB\-\-\fR[\fBno\-\fR]\fBsigned\fR | \fB\-\-signed=\fR(\fBtrue\fR|\fBfalse\fR|\fBif\-asked\fR)] [\fB\-\-force\-with\-lease\fR[\fB=\fR\fI\fR[\fB:\fR\fI\fR]] [\fB\-\-force\-if\-includes\fR]] [\fB\-\-no\-verify\fR] [\fI\fR [\fI\fR\&...]] .fi .sp .SH "توضیحات (DESCRIPTION)" .sp یک یا چند شاخه، برچسب یا سایر ارجاع‌ها را در یک یا چند مخزن دوردست از مخزن محلی شما به‌روزرسانی می‌کند و تمام داده‌های لازم را که از قبل روی مخزن دوردست وجود ندارند ارسال می‌نماید\&. .sp ساده‌ترین روش برای ارسال، استفاده از دستور \fBgit\fR \fBpush\fR \fI\fR \fI\fR است\&. دستور \fBgit\fR \fBpush\fR \fBorigin\fR \fBmain\fR شاخه محلی \fBmain\fR را به شاخه \fBmain\fR در مخزن دوردست با نام \fBorigin\fR ارسال می‌کند\&. .sp همچنین می‌توانید با استفاده از یک گروه مخزن دوردست (remote group)، به‌طور همزمان به چندین مخزن دوردست ارسال انجام دهید\&. یک گروه مخزن دوردست، فهرستی نام‌گذاری‌شده از مخازن دوردست است که از طریق \fBremotes\&.\fR\fI\fR در پیکربندی گیت شما تنظیم می‌شود: .sp .if n \{\ .RS 4 .\} .nf $ git config remotes\&.all\-remotes "origin gitlab backup" .fi .if n \{\ .RE .\} .sp سپس دستور \fBgit\fR \fBpush\fR \fBall\-remotes\fR به نوبت به \fBorigin\fR، \fBgitlab\fR و \fBbackup\fR ارسال انجام می‌دهد، گویی که \fBgit\fR \fBpush\fR را برای هر یک به صورت جداگانه اجرا کرده باشید\&. ارسال به هر مخزن دوردست به‌طور مستقل با استفاده از پیکربندی نگاشت ارسال (push mapping) مخصوص به خود انجام می‌شود\&. یک مدخل \fBremotes\&.\fR\fI\fR در فایل پیکربندی وجود دارد\&. (به \fBgit-config\fR(1) مراجعه کنید)\&. .sp مقدار پیش‌فرض آرگومان \fI\fR، مخزن بالادست (upstream) برای شاخه جاری است، یا اگر بالادستی پیکربندی نشده باشد، برابر با \fBorigin\fR خواهد بود\&. .sp برای تصمیم‌گیری درباره اینکه کدام شاخه‌ها، برچسب‌ها یا سایر ارجاع‌ها ارسال شوند، Git به ترتیب اولویت از موارد زیر استفاده می‌کند: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} آرگومان(های) \fI\fR (مشخصه ارجاع) (برای مثال \fBmain\fR در \fBgit\fR \fBpush\fR \fBorigin\fR \fBmain\fR) یا گزینه‌های \fB\-\-all\fR، \fB\-\-mirror\fR یا \fB\-\-tags\fR .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} پیکربندی \fBremote\&.\fR\fI\fR\fB\&.push\fR برای مخزنی که به آن ارسال می‌شود .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} پیکربندی \fBpush\&.default\fR\&. مقدار پیش‌فرض \fBpush\&.default=simple\fR است که به شاخه‌ای با همان نام شاخه جاری ارسال می‌کند\&. برای اطلاعات بیشتر درباره \fBpush\&.default\fR به بخش CONFIGURATION در زیر مراجعه کنید\&. .RE .sp بسته به اینکه \fBpush\&.default\fR روی چه مقداری تنظیم شده باشد، اگر بالادست (upstream) را برای شاخه جاری تنظیم نکرده باشید ممکن است اجرای \fBgit\fR \fBpush\fR با شکست مواجه شود\&. برای اطلاعات بیشتر در مورد نحوه تنظیم و استفاده از بالادست‌ها به بخش «شاخه‌های بالادست (UPSTREAM BRANCHES)» در زیر مراجعه کنید\&. .sp می‌توانید با تنظیم \fIقلاب‌ها (hooks)\fR در یک مخزن، کاری کنید که با هر بار ارسال (push) به آن، رویدادهای سفارشی مدنظرتان اجرا شوند\&. به مستندات \fBgit-receive-pack\fR(1) مراجعه کنید\&. .SH "گزینه‌ها (OPTIONS)" .PP \fI\fR .RS 4 مخزن «دوردست» (remote) که مقصد عملیات ارسال (push) است\&. این پارامتر می‌تواند یک نشانی اینترنتی (URL) باشد (بخش GIT URLS در زیر را ببینید)، نام یک مخزن دوردست (بخش REMOTES در زیر را ببینید)، یا نام یک گروه دوردست (بخش REMOTE GROUPS در زیر را ببینید)\&. .RE .PP \fI\fR\&.\&.\&. .RS 4 مشخص می‌کند کدام ارجاع مقصد با کدام شیء منبع به‌روزرسانی شود\&. .sp قالب یک مشخصه ارجاع (refspec) به‌صورت [\fB+\fR]\fI\fR[\fB:\fR\fI\fR] است، برای مثال \fBmain\fR، \fBmain:other\fR، یا \fBHEAD^:refs/heads/main\fR\&. .sp بخش \fI\fR اغلب نام شاخهٔ محلی برای ارسال است، اما می‌تواند هر «عبارت SHA\-1» دلخواهی باشد (ببینید \fBgitrevisions\fR(7))\&. .sp بخش \fI\fR مشخص می‌کند چه ارجاعی در سمت دوردست به‌روزرسانی شود\&. این مقدار باید نام یک شاخه، برچسب، یا ارجاع دیگری باشد، نه یک عبارت دلخواه\&. .sp علامت \fB+\fR اختیاری است و عملکردی مشابه \fB\-\-force\fR دارد\&. .sp می‌توانید یک مشخصه ارجاع را با استفاده از شکل کاملاً بسط‌یافته بنویسید (برای مثال \fBrefs/heads/main:refs/heads/main\fR) که دقیقاً منبع و مقصد را مشخص می‌کند، یا با شکلی کوتاه‌تر (برای مثال \fBmain\fR یا \fBmain:other\fR)\&. در ادامه قوانینی برای چگونگی بسط مشخصه‌های ارجاع و همچنین سایر شکل‌های ویژه مختلف مشخصه ارجاع آورده شده است: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fI\fR بدون \fB:\fR\fI\fR به این معنی است که همان ارجاع مشابه \fI\fR به‌روزرسانی شود، مگر آنکه پیکربندی \fBremote\&.\fR\fI\fR\fB\&.push\fR مقدار \fI\fR متفاوتی را مشخص کرده باشد\&. برای مثال، اگر \fBmain\fR یک شاخه باشد، آن‌گاه مشخصه ارجاع \fBmain\fR به \fBmain:refs/heads/main\fR بسط می‌یابد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} اگر \fI\fR به‌طور بدون ابهام به ارجاعی در مخزن دوردست اشاره کند، آن‌گاه به همان ارجاع بسط داده می‌شود\&. برای مثال، اگر \fBv1\&.0\fR یک برچسب در مخزن دوردست باشد، آن‌گاه \fBHEAD:v1\&.0\fR به \fBHEAD:refs/tags/v1\&.0\fR بسط می‌یابد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} اگر \fI\fR به ارجاعی که با \fBrefs/heads/\fR یا \fBrefs/tags/\fR شروع می‌شود تبدیل شود، آن پیشوند به ابتدای اضافه می‌شود\&. برای مثال، اگر \fBmain\fR یک شاخه باشد، آن‌گاه \fBmain:other\fR به \fBmain:refs/heads/other\fR بسط می‌یابد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} مشخصه ارجاع ویژه \fB:\fR (یا \fB+:\fR برای اجازه دادن به به‌روزرسانی‌های بدون جلوبردن سریع (non\-fast\-forward)) به Git دستور می‌دهد تا شاخه‌های «منطبق» را ارسال کند: به ازای هر شاخه‌ای که در سمت محلی وجود دارد، اگر شاخه‌ای با همان نام از قبل در سمت دوردست وجود داشته باشد، سمت دوردست به‌روزرسانی می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fI\fR می‌تواند شامل یک \fB*\fR برای نشان دادن یک تطابق الگوی ساده باشد\&. این کار مانند یک glob عمل می‌کند که با هر ارجاعِ منطبق با الگو مطابقت می‌یابد\&. فقط باید یک \fB*\fR در هر دو بخش \fI\fR و \fI\fR وجود داشته باشد\&. این ویژگی با جایگزین کردن * با محتوای تطبیق‌یافته از منبع، ارجاع‌ها را به مقصد نگاشت می‌کند\&. برای مثال، \fBrefs/heads/*:refs/heads/*\fR تمام شاخه‌ها را ارسال خواهد کرد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} یک مشخصه ارجاع که با \fB^\fR شروع می‌شود، یک مشخصه ارجاع منفی است\&. این مشخصه ارجاع‌هایی را برای مستثنی شدن مشخص می‌کند\&. یک ارجاع در صورتی منطبق در نظر گرفته می‌شود که حداقل با یک مشخصه ارجاع مثبت مطابقت داشته باشد و با هیچ مشخصه ارجاع منفی مطابقت نداشته باشد\&. مشخصه‌های ارجاع منفی می‌توانند مشخصه‌های ارجاع الگویی باشند\&. آن‌ها فقط باید شامل یک \fI\fR باشند\&. نام‌های شیء هگزادسیمال کاملاً نوشته‌شده نیز پشتیبانی نمی‌شوند\&. برای مثال، \fBgit\fR \fBpush\fR \fBorigin\fR \*(Aqrefs/heads/*\*(Aq \*(Aq^refs/heads/dev\-*\*(Aq تمام شاخه‌ها را به جز آن‌هایی که با \fBdev\-\fR شروع می‌شوند ارسال خواهد کرد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} اگر \fI\fR خالی باشد، ارجاع \fI\fR را از مخزن دوردست حذف می‌کند\&. برای مثال، \fBgit\fR \fBpush\fR \fBorigin\fR \fB:dev\fR شاخهٔ \fBdev\fR را حذف خواهد کرد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBtag\fR \fI\fR به \fBrefs/tags/\fR\fI\fR\fB:refs/tags/\fR\fI\fR بسط می‌یابد\&. این از نظر فنی یک نحو ویژه برای \fBgit\fR \fBpush\fR است و یک مشخصه ارجاع نیست، زیرا در \fBgit\fR \fBpush\fR \fBorigin\fR \fBtag\fR \fBv1\&.0\fR آرگومان‌های \fBtag\fR و \fBv1\&.0\fR جدا از هم هستند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} اگر مشخصه ارجاع نتواند بدون ابهام بسط یابد، با خطایی که نشان می‌دهد چه چیزی تلاش شده است متوقف می‌شود و بسته به پیکربندی \fBadvice\&.pushUnqualifiedRefname\fR (ببینید \fBgit-config\fR(1)) پیشنهاد می‌دهد که ممکن است می‌خواستید به کدام فضای نام refs/ ارسال کنید\&. .RE .RE .sp همهٔ به‌روزرسانی‌ها مجاز نیستند: برای جزئیات بخش PUSH RULES را در زیر ببینید\&. .PP \fB\-\-all\fR, \fB\-\-branches\fR .RS 4 ارسال همه شاخه‌ها (یعنی ارجاع‌های زیر \fBrefs/heads/\fR)؛ همراه با سایر قابل استفاده نیست\&. .RE .PP \fB\-\-prune\fR .RS 4 شاخه‌های دوردستی را که فاقد همتای محلی هستند حذف می‌کند\&. برای مثال شاخه دوردست \fBtmp\fR در صورتی که شاخه محلی با همین نام دیگر وجود نداشته باشد، حذف خواهد شد\&. این گزینه همچنین از مشخصه‌های ارجاع (refspecs) تبعیت می‌کند، مثلاً \fBgit\fR \fBpush\fR \fB\-\-prune\fR \fBremote\fR \fBrefs/heads/*:refs/tmp/*\fR اطمینان حاصل می‌کند که ارجاع دوردست \fBrefs/tmp/foo\fR در صورت عدم وجود \fBrefs/heads/foo\fR حذف خواهد شد\&. .RE .PP \fB\-\-mirror\fR .RS 4 به جای نام بردن هر ارجاع برای ارسال، مشخص می‌کند که تمام ارجاع‌های زیر \fBrefs/\fR (که شامل، ولی نه محدود به \fBrefs/heads/\fR، \fBrefs/remotes/\fR و \fBrefs/tags/\fR است) در مخزن دوردست آینه‌سازی (mirror) شوند\&. ارجاع‌های محلی تازه ایجادشده به سمت دوردست ارسال می‌شوند، ارجاع‌های محلی به‌روزرسانی‌شده به‌صورت اجباری در سمت دوردست به‌روزرسانی خواهند شد، و ارجاع‌های حذف‌شده از سمت دوردست پاک می‌شوند\&. اگر گزینه پیکربندی \fBremote\&.\fR\fI\fR\fB\&.mirror\fR تنظیم شده باشد، این حالت پیش‌فرض است\&. .RE .PP \fB\-n\fR, \fB\-\-dry\-run\fR .RS 4 همه کارها را به جز ارسال واقعی به‌روزرسانی‌ها انجام می‌دهد (اجرای آزمایشی)\&. .RE .PP \fB\-\-porcelain\fR .RS 4 خروجی قابل خواندن برای ماشین تولید می‌کند\&. خط وضعیت خروجی برای هر ارجاع با تب (tab) جدا شده و به جای stderr به stdout فرستاده می‌شود\&. نام‌های نمادین کامل ارجاع‌ها ارائه خواهد شد\&. .RE .PP \fB\-d\fR, \fB\-\-delete\fR .RS 4 تمام ارجاع‌های ذکرشده از مخزن دوردست حذف می‌شوند\&. این معادل قرار دادن یک دو نقطه (:) در ابتدای تمام ارجاع‌ها است\&. .RE .PP \fB\-\-tags\fR .RS 4 علاوه بر مشخصه‌های ارجاعی (refspecs) که صراحتاً در خط فرمان ذکر شده‌اند، تمام ارجاع‌های زیر \fBrefs/tags\fR ارسال می‌شوند\&. .RE .PP \fB\-\-follow\-tags\fR .RS 4 تمام ارجاع‌هایی را که بدون این گزینه ارسال می‌شدند ارسال می‌کند، و همچنین تگ‌های دارای یادداشت (annotated tags) در \fBrefs/tags\fR را که در دوردست وجود ندارند اما به کامیت‌هایی (commit-ish) اشاره می‌کنند که از طریق ارجاع‌های در حال ارسال قابل دستیابی هستند، ارسال می‌کند\&. این رفتار را می‌توان با متغیر پیکربندی \fBpush\&.followTags\fR نیز مشخص کرد\&. برای اطلاعات بیشتر، \fBpush\&.followTags\fR را در \fBgit-config\fR(1) ببینید\&. .RE .PP \fB\-\-signed\fR, \fB\-\-no\-signed\fR, \fB\-\-signed=\fR(\fBtrue\fR|\fBfalse\fR|\fBif\-asked\fR) .RS 4 امضای GPG برای درخواست ارسال به‌منظور به‌روزرسانی ارجاع‌ها در سمت گیرنده، تا امکان بررسی آن توسط قلاب‌ها (hooks) و/یا ثبت در گزارش فراهم شود\&. مقادیر ممکن عبارتند از: .PP \fBfalse\fR, \fB\-\-no\-signed\fR .RS 4 هیچ تلاشی برای امضا انجام نخواهد شد\&. .RE .PP \fBtrue\fR, \fB\-\-signed\fR .RS 4 اگر سرور از ارسال‌های امضاشده پشتیبانی نکند، ارسال با شکست مواجه خواهد شد\&. .RE .PP \fBif\-asked\fR .RS 4 تنها در صورتی امضا می‌شود که سرور از ارسال‌های امضاشده پشتیبانی کند\&. همچنین در صورت شکست فراخوانی واقعی \fBgpg\fR \fB\-\-sign\fR ارسال با شکست مواجه خواهد شد\&. برای جزئیات در سمت گیرنده، \fBgit-receive-pack\fR(1) را ببینید\&. .RE .RE .PP \fB\-\-atomic\fR, \fB\-\-no\-atomic\fR .RS 4 در صورت وجود، از یک تراکنش اتمیک (atomic transaction) در سمت دوردست استفاده می‌کند\&. یا تمام ارجاع‌ها به‌روزرسانی می‌شوند، یا در صورت بروز خطا، هیچ ارجاعی به‌روزرسانی نخواهد شد\&. اگر سرور از ارسال‌های اتمیک پشتیبانی نکند، ارسال با شکست مواجه خواهد شد\&. .RE .PP \fB\-o\fR \fI