'\" t .\" Title: git-switch .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2026-06-29 .\" Manual: Git Manual .\" Source: Git 2.55.0 .\" Language: English .\" .TH "GIT\-SWITCH" "1" "2026\-06\-29" "Git 2\&.55\&.0" "Git Manual" .\" ----------------------------------------------------------------- .\" * 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-switch \- جابه‌جایی میان شاخه‌ها .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fBgit\fR \fBswitch\fR [\fI\fR] [\fB\-\-no\-guess\fR] \fI\fR \fBgit\fR \fBswitch\fR [\fI\fR] \fB\-\-detach\fR [\fI\fR] \fBgit\fR \fBswitch\fR [\fI\fR] (\fB\-c\fR|\fB\-C\fR) \fI\fR [\fI\fR] \fBgit\fR \fBswitch\fR [\fI\fR] \fB\-\-orphan\fR \fI\fR .fi .sp .SH "توضیحات (DESCRIPTION)" .sp جابه‌جایی به یک شاخهٔ مشخص‌شده\&. درخت کاری (working tree) و نمایه (index) به‌روزرسانی می‌شوند تا با شاخه مطابقت داشته باشند\&. تمامی کامیت‌های جدید به نوک (tip) این شاخه اضافه خواهند شد\&. .sp به‌صورت اختیاری می‌توان یک شاخهٔ جدید با استفاده از \fB\-c\fR یا \fB\-C\fR ایجاد کرد، یا به‌صورت خودکار از یک شاخهٔ ریموت هم‌نام ایجاد نمود (نگاه کنید به \fB\-\-guess\fR)، و یا با \fB\-\-detach\fR درخت کاری را هم‌زمان با جابه‌جایی، از هر شاخه‌ای جدا کرد\&. .sp جابه‌جایی شاخه‌ها نیازی به خالی و تمیز بودن نمایه و درخت کاری ندارد (یعنی عدم وجود تفاوت در مقایسه با \fBHEAD\fR)\&. با این حال، اگر این عملیات منجر به از بین رفتن تغییرات محلی شود لغو خواهد شد، مگر آنکه با \fB\-\-discard\-changes\fR یا \fB\-\-merge\fR دستور دیگری داده شده باشد\&. .SH "گزینه‌ها (OPTIONS)" .PP \fI\fR .RS 4 شاخه برای جابه‌جایی به آن\&. .RE .PP \fI\fR .RS 4 نام برای شاخهٔ جدید\&. .RE .PP \fI\fR .RS 4 نقطهٔ شروع برای شاخهٔ جدید\&. مشخص کردن یک \fI\fR به شما امکان می‌دهد تا شاخه‌ای را بر مبنای نقطه‌ای دیگر از تاریخچه، به‌جز جایی که \fBHEAD\fR در حال حاضر به آن اشاره دارد بسازید\&. (یا در مورد \fB\-\-detach\fR، امکان بررسی و جدا شدن از نقطه‌ای دیگر را فراهم می‌کند\&.) .sp می‌توانید از ساختار \fB@\fR{\-\fI\fR} برای اشاره به \fI\fR\-امین شاخه یا کامیتی که قبلاً با استفاده از عملیات \fBgit\fR \fBswitch\fR یا \fBgit\fR \fBcheckout\fR به آن جابه‌جا شده‌اید استفاده کنید\&. همچنین می‌توانید \fB\-\fR را مشخص نمایید که مترادف با \fB@\fR{\-1} است\&. این اغلب برای جابه‌جایی سریع میان دو شاخه، یا لغو جابه‌جایی اشتباه شاخه استفاده می‌شود\&. .sp به عنوان یک حالت ویژه، می‌توانید از \fI\fR\fB\&.\&.\&.\fR\fI\fR به عنوان میان‌بری برای پایهٔ ادغام (merge base) میان \fI\fR و \fI\fR استفاده کنید، مشروط بر اینکه دقیقاً یک پایهٔ ادغام وجود داشته باشد\&. می‌توانید حداکثر یکی از \fI\fR و \fI\fR را حذف کنید که در این صورت پیش‌فرض آن \fBHEAD\fR خواهد بود\&. .RE .PP \fB\-c\fR \fI\fR, \fB\-\-create\fR \fI\fR .RS 4 پیش از جابه‌جایی به شاخه، شاخهٔ جدیدی به نام \fI\fR با شروع از \fI\fR ایجاد می‌کند\&. این از نظر تراکنشی معادل موارد زیر است: .sp .if n \{\ .RS 4 .\} .nf $ git branch $ git switch .fi .if n \{\ .RE .\} .sp بدین معنا که شاخه بازنشانی/ایجاد نمی‌شود مگر آنکه \fBgit\fR \fBswitch\fR موفقیت‌آمیز باشد (برای مثال، هنگامی که شاخه در درخت کاری دیگری در حال استفاده است، نه تنها شاخهٔ فعلی یکسان می‌ماند، بلکه شاخه به نقطهٔ شروع نیز بازنشانی نمی‌شود)\&. .RE .PP \fB\-C\fR \fI\fR, \fB\-\-force\-create\fR \fI\fR .RS 4 مشابه \fB\-\-create\fR است، با این تفاوت که اگر \fI\fR از قبل وجود داشته باشد، به \fI\fR بازنشانی خواهد شد\&. این یک میان‌بر کاربردی برای موارد زیر است: .sp .if n \{\ .RS 4 .\} .nf $ git branch \-f __ $ git switch __ .fi .if n \{\ .RE .\} .sp .RE .PP \fB\-d\fR, \fB\-\-detach\fR .RS 4 جابه‌جایی به یک کامیت برای بازبینی و آزمایش‌های دورانداختنی\&. برای جزئیات به بخش "DETACHED HEAD" در \fBgit-checkout\fR(1) مراجعه کنید\&. .RE .PP \fB\-\-guess\fR, \fB\-\-no\-guess\fR .RS 4 اگر \fI\fR یافت نشود اما یک شاخهٔ ردیابی در دقیقاً یک ریموت (که آن را \fI\fR می‌نامیم) با نام منطبق وجود داشته باشد، معادل دستور زیر تلقی می‌شود: .sp .if n \{\ .RS 4 .\} .nf $ git switch \-c \-\-track / .fi .if n \{\ .RE .\} .sp اگر شاخه در چند ریموت وجود داشته باشد و یکی از آن‌ها توسط متغیر پیکربندی \fBcheckout\&.defaultRemote\fR مشخص شده باشد، برای ابهام‌زدایی از آن استفاده خواهیم کرد؛ حتی اگر \fI\fR در بین تمام ریموت‌ها یکتا نباشد\&. برای نمونه آن را به \fBcheckout\&.defaultRemote=origin\fR تنظیم کنید تا در صورت مبهم بودن \fI\fR اما موجود بودن در ریموت \fIorigin\fR، شاخهٔ ریموت همواره از آنجا دریافت شود\&. همچنین به \fBcheckout\&.defaultRemote\fR در \fBgit-config\fR(1) نگاه کنید\&. .sp گزینهٔ \fB\-\-guess\fR رفتار پیش‌فرض است\&. از \fB\-\-no\-guess\fR برای غیرفعال کردن آن استفاده کنید\&. .sp رفتار پیش‌فرض را می‌توان از طریق متغیر پیکربندی \fBcheckout\&.guess\fR تنظیم کرد\&. .RE .PP \fB\-f\fR, \fB\-\-force\fR .RS 4 نام مستعاری برای \fB\-\-discard\-changes\fR\&. .RE .PP \fB\-\-discard\-changes\fR .RS 4 حتی در صورت وجود تفاوت میان نمایه یا درخت کاری با \fBHEAD\fR عملیات را ادامه می‌دهد\&. هم نمایه و هم درخت کاری بازیابی می‌شوند تا با هدف جابه‌جایی مطابقت پیدا کنند\&. اگر \fB\-\-recurse\-submodules\fR مشخص شده باشد، محتوای زیرماژول‌ها نیز بازیابی می‌شود تا با هدف جابه‌جایی مطابقت یابد\&. این گزینه برای دور ریختن تغییرات محلی استفاده می‌شود\&. .RE .PP \fB\-m\fR, \fB\-\-merge\fR .RS 4 اگر تغییرات محلی روی یک یا چند فایل داشته باشید که بین شاخهٔ فعلی و شاخه‌ای که به آن جابه‌جا می‌شوید متفاوت باشند، دستور معمولاً برای حفظ تغییرات شما در بستر اصلی، از جابه‌جایی شاخه‌ها خودداری می‌کند\&. با این حال با این گزینه، تغییرات محلیِ دارای تداخل، به‌طور خودکار پیش از جابه‌جایی ذخیره (stash) شده و پس از آن مجدداً اعمال می‌شوند\&. اگر تغییرات محلی با تفاوت‌های میان شاخه‌ها هم‌پوشانی نداشته باشند، جابه‌جایی بدون ذخیره‌سازی انجام می‌شود\&. اگر اعمال مجدد تغییرات ذخیره‌شده منجر به تداخل شود، این مدخل در فهرست تغییرات ذخیره‌شده (stash list) باقی می‌ماند\&. پس از اتمام کار، تداخل‌ها را برطرف کرده و \fBgit\fR \fBstash\fR \fBdrop\fR را اجرا کنید، یا پیش از اجرای بعدیِ \fBgit\fR \fBstash\fR \fBpop\fR جهت اعمال مجدد تغییرات، درخت کاری را پاک کنید (برای نمونه با \fBgit\fR \fBreset\fR \fB\-\-hard\fR)\&. .RE .PP \fB\-\-conflict=\fR\fI