'\" t .\" Title: git-cherry .\" 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\-CHERRY" "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-cherry \- یافتن کامیت‌هایی که هنوز روی بالادست اعمال نشده‌اند .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fIgit cherry\fR [\-v] [ [ []]] .fi .sp .SH "توضیحات (DESCRIPTION)" .sp تعیین می‌کند که آیا کامیت‌هایی در \fI\fR\fB\&.\&.\fR\fI\fR وجود دارند که معادل با کامیت‌های موجود در محدوده \fI\fR\fB\&.\&.\fR\fI\fR باشند یا خیر\&. .sp آزمون هم‌ارزی بر اساس تفاضل (diff)، پس از حذف فاصله‌های خالی و شماره خطوط انجام می‌شود\&. بنابراین git\-cherry تشخیص می‌دهد چه زمانی کامیت‌ها به وسیله \fBgit-cherry-pick\fR(1)، \fBgit-am\fR(1) یا \fBgit-rebase\fR(1) کپی شده‌اند\&. .sp شناسه SHA1 هر کامیت را در محدوده \fI\fR\fB\&.\&.\fR\fI\fR خروجی می‌دهد، با پیشوند \fB\-\fR برای کامیت‌هایی که معادلی در دارند، و \fB+\fR برای کامیت‌هایی که معادلی ندارند\&. .SH "گزینه‌ها (OPTIONS)" .PP \-v .RS 4 نمایش موضوع (subject) کامیت‌ها در کنار شناسه‌های SHA1\&. .RE .PP .RS 4 شاخه بالادست (upstream) برای جستجوی کامیت‌های هم‌ارز\&. پیش‌فرض، شاخه بالادست HEAD است\&. .RE .PP .RS 4 شاخه کاری؛ پیش‌فرض HEAD است\&. .RE .PP .RS 4 عدم گزارش کامیت‌ها تا سقف (و شامل) limit\&. .RE .SH "مثال‌ها (EXAMPLES)" .SS "گردش‌های کاری مبتنی بر وصله (Patch workflows)" .sp دستور git\-cherry معمولاً در گردش‌های کاری مبتنی بر وصله (patch) استفاده می‌شود (به \fBgitworkflows\fR(7) مراجعه کنید) تا مشخص شود آیا مجموعه‌ای از وصله‌ها توسط نگه‌دارنده بالادست اعمال شده‌اند یا خیر\&. در چنین گردش کاری ممکن است یک شاخه موضوعی (topic branch) ایجاد کرده و ارسال کنید: .sp .if n \{\ .RS 4 .\} .nf $ git checkout \-b topic origin/master # کار کنید و چند کامیت بسازید $ git format\-patch origin/master $ git send\-email \&.\&.\&. 00* .fi .if n \{\ .RE .\} .sp .sp بعداً می‌توانید ببینید که آیا تغییرات شما اعمال شده‌اند یا خیر (همچنان روی شاخه \fBtopic\fR): .sp .if n \{\ .RS 4 .\} .nf $ git fetch # به‌روزرسانی تصور شما از origin/master $ git cherry \-v .fi .if n \{\ .RE .\} .sp .SS "مثال عینی" .sp در وضعیتی که شاخه topic شامل سه کامیت باشد و نگه‌دارنده دو مورد از آنها را اعمال کرده باشد، وضعیت ممکن است به این شکل باشد: .sp .if n \{\ .RS 4 .\} .nf $ git log \-\-graph \-\-oneline \-\-decorate \-\-boundary origin/master\&.\&.\&.topic * 7654321 (origin/master) upstream tip commit [\&.\&.\&. حذف چند کامیت دیگر \&.\&.\&.] * cccc111 cherry\-pick of C * aaaa111 cherry\-pick of A [\&.\&.\&. حذف موارد بسیار بیشتری که رخ داده است \&.\&.\&.] | * cccc000 (topic) commit C | * bbbb000 commit B | * aaaa000 commit A |/ o 1234567 branch point .fi .if n \{\ .RE .\} .sp .sp در چنین مواردی، git\-cherry خلاصه‌ای دقیق از آنچه هنوز باید اعمال شود را نشان می‌دهد: .sp .if n \{\ .RS 4 .\} .nf $ git cherry origin/master topic \- cccc000\&.\&.\&. commit C + bbbb000\&.\&.\&. commit B \- aaaa000\&.\&.\&. commit A .fi .if n \{\ .RE .\} .sp .sp در اینجا می‌بینیم که کامیت‌های A و C (علامت‌گذاری‌شده با \fB\-\fR) را می‌توان هنگام ری‌بیس کردن روی \fBorigin/master\fR از شاخه \fBtopic\fR خود کنار گذاشت، در حالی که کامیت B (علامت‌گذاری‌شده با \fB+\fR) همچنان باید نگه‌داشته شود تا برای اعمال به \fBorigin/master\fR ارسال گردد\&. .SS "استفاده از حد (limit)" .sp پارامتر اختیاری در مواردی مفید است که شاخه topic شما بر پایه کار دیگری باشد که در بالادست نیست\&. با بسط دادن مثال قبلی، ممکن است وضعیت به این شکل باشد: .sp .if n \{\ .RS 4 .\} .nf $ git log \-\-graph \-\-oneline \-\-decorate \-\-boundary origin/master\&.\&.\&.topic * 7654321 (origin/master) upstream tip commit [\&.\&.\&. حذف چند کامیت دیگر \&.\&.\&.] * cccc111 cherry\-pick of C * aaaa111 cherry\-pick of A [\&.\&.\&. حذف موارد بسیار بیشتری که رخ داده است \&.\&.\&.] | * cccc000 (topic) commit C | * bbbb000 commit B | * aaaa000 commit A | * 0000fff (base) unpublished stuff F [\&.\&.\&. حذف \&.\&.\&.] | * 0000aaa unpublished stuff A |/ o 1234567 merge\-base between upstream and topic .fi .if n \{\ .RE .\} .sp .sp با مشخص کردن \fBbase\fR به عنوان limit، می‌توانید از فهرست کردن کامیت‌های بین \fBbase\fR و \fBtopic\fR جلوگیری کنید: .sp .if n \{\ .RS 4 .\} .nf $ git cherry origin/master topic base \- cccc000\&.\&.\&. commit C + bbbb000\&.\&.\&. commit B \- aaaa000\&.\&.\&. commit A .fi .if n \{\ .RE .\} .sp .SH "همچنین ببینید (SEE ALSO)" .sp \fBgit-patch-id\fR(1) .SH "گیت (GIT)" .sp بخشی از مجموعه \fBgit\fR(1)