'\" t .\" Title: git-pull .\" 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\-PULL" "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-pull \- دریافت و ادغام تغییرات از یک مخزن دیگر یا یک شاخه محلی .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fBgit\fR \fBpull\fR [\fI\fR] [\fI\fR [\fI\fR\&...]] .fi .sp .SH "توضیحات (DESCRIPTION)" .sp تغییرات را از یک مخزن دوردست در شاخه فعلی ادغام می‌کند\&. .sp ابتدا، \fBgit\fR \fBpull\fR دستور \fBgit\fR \fBfetch\fR را با همان آرگومان‌ها (به‌جز گزینه‌های ادغام) برای واکشی شاخه(های) دوردست اجرا می‌کند\&. سپس تصمیم می‌گیرد که کدام شاخه دوردست را ادغام کند: اگر \fBgit\fR \fBpull\fR را بدون هیچ آرگومانی اجرا کنید، این مورد به‌طور پیش‌فرض شاخه بالادست (upstream) برای شاخه فعلی خواهد بود\&. سپس آن شاخه را در شاخه فعلی ادغام می‌کند\&. .sp برای ادغام شاخه دوردست، ۴ گزینه اصلی وجود دارد: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} دستور \fBgit\fR \fBpull\fR \fB\-\-ff\-only\fR تنها به‌روزرسانی‌های «فست‌فوروارد» (fast\-forward) را انجام می‌دهد: اگر شاخه محلی شما از شاخه دوردست واگرا شده باشد، با شکست مواجه می‌شود\&. این حالت پیش‌فرض است\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} دستور \fBgit\fR \fBpull\fR \fB\-\-rebase\fR دستور \fBgit\fR \fBrebase\fR را اجرا می‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} دستور \fBgit\fR \fBpull\fR \fB\-\-no\-rebase\fR دستور \fBgit\fR \fBmerge\fR را اجرا می‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} دستور \fBgit\fR \fBpull\fR \fB\-\-squash\fR دستور \fBgit\fR \fBmerge\fR \fB\-\-squash\fR را اجرا می‌کند\&. .RE .sp همچنین می‌توانید گزینه‌های پیکربندی \fBpull\&.rebase\fR، \fBpull\&.squash\fR یا \fBpull\&.ff\fR را با رفتار مورد نظر خود تنظیم کنید\&. .sp اگر در طول ادغام یا ری‌بیس با یک تداخل ادغام مواجه شدید که نمی‌خواهید آن را مدیریت کنید، می‌توانید با خیال راحت آن را با \fBgit\fR \fBmerge\fR \fB\-\-abort\fR یا \fBgit\fR \fBrebase\fR \fB\-\-abort\fR لغو کنید\&. .SH "گزینه‌ها (OPTIONS)" .PP \fI\fR .RS 4 مخزن «دوردست» (remote) برای پول کردن از آن\&. این مقدار می‌تواند یک نشانی اینترنتی (بخش GIT URLS در زیر را ببینید) یا نام یک ریموت باشد (بخش REMOTES در زیر را ببینید)\&. .sp پیش‌فرض آن بالادست پیکربندی‌شده برای شاخه کنونی، یا \fBorigin\fR است\&. برای اطلاعات بیشتر در مورد نحوه پیکربندی بالادست‌ها، بخش UPSTREAM BRANCHES در زیر را ببینید\&. .RE .PP \fI\fR .RS 4 کدام شاخه یا سایر ارجاع(ها) واکشی و در شاخه کنونی ادغام شوند؛ برای مثال \fBmain\fR در \fBgit\fR \fBpull\fR \fBorigin\fR \fBmain\fR\&. پیش‌فرض آن بالادست پیکربندی‌شده برای شاخه کنونی است\&. .sp این می‌تواند یک شاخه، تگ یا مجموعه دیگری از ارجاع(ها) باشد\&. برای نحو کامل، \fI\fR در زیر تحت عنوان «گزینه‌های مربوط به واکشی» را ببینید، و برای نحوه استفاده \fBgit\fR \fBpull\fR از این آرگومان جهت تعیین شاخه دوردستی که باید ادغام شود، بخش DEFAULT BEHAVIOUR در زیر را مشاهده کنید\&. .RE .PP \fB\-q\fR, \fB\-\-quiet\fR .RS 4 این گزینه به هر دو دستور زیربنایی git\-fetch (جهت فرونشاندن گزارش‌ها حین انتقال) و git\-merge (جهت فرونشاندن خروجی حین ادغام) ارسال می‌شود\&. .RE .PP \fB\-v\fR, \fB\-\-verbose\fR .RS 4 گزینه \fB\-\-verbose\fR را به git\-fetch و git\-merge ارسال می‌کند\&. .RE .PP \fB\-\-recurse\-submodules\fR[\fB=\fR(\fByes\fR|\fBon\-demand\fR|\fBno\fR)], \fB\-\-no\-recurse\-submodules\fR .RS 4 این گزینه کنترل می‌کند که آیا کامیت‌های جدید زیرماژول‌های مقداردهی‌شده باید واکشی شوند و آیا درخت‌های کاری زیرماژول‌های فعال نیز باید به‌روزرسانی شوند یا خیر (ببینید \fBgit-fetch\fR(1)، \fBgit-config\fR(1) و \fBgitmodules\fR(5))\&. .sp اگر بررسی و تحویل (checkout) از طریق ری‌بیس انجام شود، کامیت‌های محلی زیرماژول نیز ری‌بیس می‌شوند\&. .sp اگر به‌روزرسانی از طریق ادغام انجام شود، تداخل‌های زیرماژول حل و دریافت (checked out) می‌شوند\&. .RE .SS "گزینه‌های مربوط به ادغام (Options related to merging)" .PP \fB\-\-commit\fR, \fB\-\-no\-commit\fR .RS 4 ادغام را انجام داده و نتیجه را کامیت می‌کند\&. از این گزینه می‌توان برای لغو \fB\-\-no\-commit\fR استفاده کرد\&. فقط هنگام ادغام کاربرد دارد\&. .sp با \fB\-\-no\-commit\fR ادغام را انجام داده و درست پیش از ایجاد کامیت ادغام متوقف می‌شود، تا به کاربر فرصت بازبینی و تغییر بیشتر نتیجه ادغام پیش از کامیت کردن داده شود\&. .sp توجه داشته باشید که به‌روزرسانی‌های فست‌فوروارد کامیت ادغام ایجاد نمی‌کنند و بنابراین راهی برای متوقف کردن آن ادغام‌ها با \fB\-\-no\-commit\fR وجود ندارد\&. از این رو، اگر می‌خواهید مطمئن شوید که شاخه شما توسط دستور ادغام تغییر یا به‌روزرسانی نمی‌شود، از \fB\-\-no\-ff\fR همراه با \fB\-\-no\-commit\fR استفاده کنید\&. .RE .PP \fB\-\-edit\fR, \fB\-e\fR, \fB\-\-no\-edit\fR .RS 4 پیش از کامیت کردن یک ادغام مکانیکی موفق، یک ویرایشگر را فراخوانی می‌کند تا پیام ادغام تولیدشده به‌طور خودکار ویرایش شود، تا کاربر بتواند ادغام را توضیح داده و توجیه کند\&. گزینه \fB\-\-no\-edit\fR می‌تواند برای پذیرش پیام تولیدشده به‌طور خودکار استفاده شود (این کار عموماً توصیه نمی‌شود)\&. .sp اسکریپت‌های قدیمی‌تر ممکن است به رفتار تاریخی عدم اجازه به کاربر برای ویرایش پیام لاگ ادغام وابسته باشند\&. آن‌ها هنگام اجرای \fBgit\fR \fBmerge\fR باز شدن یک ویرایشگر را خواهند دید\&. برای آسان‌تر کردن تطبیق چنین اسکریپت‌هایی با رفتار به‌روزرسانی‌شده، متغیر محیطی \fBGIT_MERGE_AUTOEDIT\fR می‌تواند در ابتدای آن‌ها روی \fBno\fR تنظیم شود\&. .RE .PP \fB\-\-cleanup=\fR\fI\fR .RS 4 این گزینه تعیین می‌کند که پیام ادغام پیش از کامیت چگونه پاک‌سازی شود\&. برای جزئیات بیشتر \fBgit-commit\fR(1) را ببینید\&. علاوه بر این، اگر به \fI\fR مقدار \fBscissors\fR داده شود، در صورت بروز تداخل ادغام، خط قیچی (scissors) پیش از ارسال به سازوکار کامیت به \fBMERGE_MSG\fR اضافه خواهد شد\&. .RE .PP \fB\-\-ff\-only\fR .RS 4 تنها در صورتی به تاریخچه جدید به‌روزرسانی می‌کند که هیچ تاریخچه محلی واگرایی وجود نداشته باشد\&. زمانی که هیچ روشی برای تطبیق تاریخچه‌های واگرا (از طریق فلگ‌های \fB\-\-rebase\fR) ارائه نشده باشد، این حالت پیش‌فرض است\&. .RE .PP \fB\-\-ff\fR, \fB\-\-no\-ff\fR .RS 4 هنگام ادغام به جای ری‌بیس، مشخص می‌کند که در صورت فرزند بودن تاریخچه ادغام‌شده از تاریخچه کنونی، ادغام چگونه مدیریت شود\&. اگر ادغام درخواست شده باشد، \fB\-\-ff\fR حالت پیش‌فرض است مگر اینکه تگ دارای توضیحات (و احتمالاً امضاشده‌ای) ادغام شود که در جایگاه طبیعی خود در سلسله‌مراتب \fBrefs/tags/\fR ذخیره نشده است، که در این حالت \fB\-\-no\-ff\fR فرض می‌شود\&. .sp با \fB\-\-ff\fR، در صورت امکان ادغام را به‌صورت فست‌فوروارد حل می‌کند (تنها اشاره‌گر شاخه را مطابق با شاخه ادغام‌شده به‌روزرسانی می‌کند؛ کامیت ادغام ایجاد نمی‌کند)\&. در صورت عدم امکان (زمانی که تاریخچه ادغام‌شده از نوادگان تاریخچه کنونی نباشد)، یک کامیت ادغام ایجاد می‌کند\&. .sp با \fB\-\-no\-ff\fR، در تمام موارد یک کامیت ادغام ایجاد می‌کند، حتی زمانی که ادغام می‌توانست به‌صورت فست‌فوروارد حل شود\&. .RE .PP \fB\-S\fR[\fI\fR], \fB\-\-gpg\-sign\fR[\fB=\fR\fI\fR], \fB\-\-no\-gpg\-sign\fR .RS 4 کامیت ادغام حاصل را با GPG امضا می‌کند\&. آرگومان \fI\fR اختیاری است و پیش‌فرض آن هویت کامیت‌کننده است؛ در صورت تعیین، باید بدون فاصله به گزینه متصل باشد\&. \fB\-\-no\-gpg\-sign\fR برای باطل کردن هم متغیر پیکربندی \fBcommit\&.gpgSign\fR و هم گزینه قبلی \fB\-\-gpg\-sign\fR مفید است\&. .RE .PP \fB\-\-log\fR[\fB=\fR\fI\fR], \fB\-\-no\-log\fR .RS 4 علاوه بر نام شاخه‌ها، پیام لاگ را با توضیحات یک‌خطی از حداکثر \fI\fR کامیت واقعی که در حال ادغام هستند پر می‌کند\&. همچنین \fBgit-fmt-merge-msg\fR(1) را ببینید\&. فقط هنگام ادغام کاربرد دارد\&. .sp با \fB\-\-no\-log\fR توضیحات یک‌خطی کامیت‌های واقعی در حال ادغام را فهرست نمی‌کند\&. .RE .PP \fB\-\-signoff\fR, \fB\-\-no\-signoff\fR .RS 4 یک دنباله (trailer) \fBSigned\-off\-by\fR توسط کامیت‌کننده در انتهای پیام لاگ کامیت اضافه می‌کند\&. معنای signoff به پروژه‌ای که به آن کامیت می‌کنید بستگی دارد\&. برای مثال، ممکن است گواهی دهد که کامیت‌کننده حق ارسال اثر تحت پروانه پروژه را دارد یا با برخی از بیانیه‌های مشارکت‌کنندگان، مانند «گواهی مبدا توسعه‌دهنده» (Developer Certificate of Origin) موافقت می‌کند\&. (برای نمونه مورد استفاده توسط هسته لینوکس و پروژه‌های گیت، \m[blue]\fBhttps://developercertificate\&.org\fR\m[] را ببینید\&.) برای درک نحوه استفاده از signoffها در پروژه‌ای که در آن مشارکت می‌کنید، با مستندات یا راهبری آن پروژه مشورت کنید\&. .sp گزینه \fB\-\-no\-signoff\fR می‌تواند برای باطل کردن گزینه قبلی \fB\-\-signoff\fR در خط فرمان استفاده شود\&. .sp گیت یک متغیر پیکربندی برای فعال کردن گزینه خط فرمان \fB\-\-signoff\fR به صورت پیش‌فرض ندارد (و نخواهد داشت)؛ برای جزئیات بیشتر ورودی \fBcommit\&.signoff\fR را در \fBgitfaq\fR(7) ببینید\&. .RE .PP \fB\-\-stat\fR, \fB\-n\fR, \fB\-\-no\-stat\fR .RS 4 یک diffstat در پایان ادغام نمایش می‌دهد\&. این diffstat همچنین توسط گزینه پیکربندی merge\&.stat کنترل می‌شود\&. .sp با \fB\-n\fR یا \fB\-\-no\-stat\fR در پایان ادغام diffstat نشان داده نمی‌شود\&. .RE .PP \fB\-\-compact\-summary\fR .RS 4 یک خلاصه فشرده (compact\-summary) در پایان ادغام نمایش می‌دهد\&. .RE .PP \fB\-\-squash\fR, \fB\-\-no\-squash\fR .RS 4 وضعیت درخت کاری و ایندکس را به‌گونه‌ای تولید می‌کند که گویی یک ادغام واقعی رخ داده است (به‌جز اطلاعات ادغام)، اما در واقع کامیتی ایجاد نمی‌کند، \fBHEAD\fR را جابجا نمی‌کند، یا \fB$GIT_DIR/MERGE_HEAD\fR را ثبت نمی‌کند (تا باعث شود دستور بعدی \fBgit\fR \fBcommit\fR یک کامیت ادغام ایجاد کند)\&. این به شما امکان می‌دهد تا یک کامیت منفرد بر روی شاخه کنونی بسازید که تأثیر آن همانند ادغام یک شاخه دیگر (یا بیشتر در حالت ادغام چندگانه یا octopus) است\&. .sp با \fB\-\-no\-squash\fR ادغام را انجام داده و نتیجه را کامیت می‌کند\&. از این گزینه می‌توان برای لغو \fB\-\-squash\fR استفاده کرد\&. .sp با \fB\-\-squash\fR، استفاده از \fB\-\-commit\fR مجاز نبوده و ناموفق خواهد بود\&. .sp فقط هنگام ادغام کاربرد دارد\&. .RE .PP \fB\-\-verify\fR, \fB\-\-no\-verify\fR .RS 4 به‌طور پیش‌فرض، قلاب‌های pre\-merge و commit\-msg اجرا می‌شوند\&. وقتی \fB\-\-no\-verify\fR داده شود، این قلاب‌ها نادیده گرفته می‌شوند\&. همچنین \fBgithooks\fR(5) را ببینید\&. فقط هنگام ادغام کاربرد دارد\&. .RE .PP \fB\-s\fR \fI\fR, \fB\-\-strategy=\fR\fI\fR .RS 4 از راهبرد ادغام داده‌شده استفاده می‌کند؛ می‌تواند بیش از یک بار مشخص شود تا به ترتیبی که باید امتحان شوند تعیین گردند\&. اگر گزینه \fB\-s\fR مشخص نشود، یک فهرست درونی از راهبردها استفاده می‌شود (\fBort\fR هنگام ادغام یک سر (head) منفرد، و در غیر این صورت \fBoctopus\fR)\&. .RE .PP \fB\-X\fR \fI