یک درخت گیلاس زیبا را تصور کنید که پر از میوه های شیرین، قرمز و گرد آویزان است روی شاخه های سرسبز و درخشان اما تصور کنید اگر آن گیلاس ها آنقدر سریع رشد کنند که شاخه ها شروع به خم شدن، همپوشانی و شکستن کنند…آشوب به نظر می رسد درست است؟

این چیزی است که اگر از Git استفاده نکنید ممکن است رخ دهد cherry-pick در پروژه های متن باز به درستی فرمان دهید. این دستور همانند انتخاب دستی بهترین گیلاس ها و قرار دادن آنها در یک سبد، به شما امکان می دهد تا commit های فردی را از یک شاخه به شاخه دیگر منتقل کنید.

برای زمانی که با شخص دیگری همکاری می کنید عالی است روی یک پروژه منبع باز، زیرا شما را از مشکل ادغام کل شاخه ها نجات می دهد.

اکنون به اندازه Git قدرتمند و عالی است cherry-pick دستور این است که می تواند commit های تکراری ایجاد کند و به روز رسانی پایگاه کد پروژه یا حل اشکالات را برای نگهبانان منبع باز دشوار کند.

ترسیده؟ نترس، همکار منبع باز من. من راهبردهایی دارم که می‌توانید از آنها برای جلوگیری از تکراری شدن در هنگام ارتکاب گیلاس استفاده کنید.

استراتژی 1: استفاده از --no commit گزینه

این گزینه یکی از رایج ترین روش ها برای جلوگیری از commit های تکراری است. این تغییرات را از یک شاخه کپی می کند اما یک commit جدید ایجاد نمی کند، که اگر در حال کار هستید می تواند بسیار مفید باشد. روی مشارکت با شخص دیگری بیایید آن را در عمل ببینیم.

مرحله 1: گیلاس خود را انتخاب کنید (تعهد کنید)

پس از انتخاب پروژه منبع باز، شما و شریکتان در حال کار هستید روی، به چنگال آنها بروید و کلیک کنید روی را متعهد می شود برگه

پیشنهاد می‌کنیم بخوانید:  Git Pull Remote Branch – نحوه واکشی Remote Branch در Git
commits-1
اسکرین شات از برگه درخواست کشش. بخش Commits با یک بیضی نارنجی برجسته شده است

از آنجا، تعهدی را که می خواهید قرار دهید انتخاب کنید روی درخواست کشش خود را با کلیک کردن روی شماره SHA آن

commit-sha
اسکرین شات از commit history. شماره SHA نشان داده شده است روی سمت راست، با رنگ بیضی سبز برجسته شده است.

همانطور که در تصویر می بینید، شماره SHA یک شناسه منحصر به فرد است که حاوی اطلاعات زیر در مورد یک commit است:

  • نوع تغییرات ایجاد شده
  • زمانی که تغییرات ایجاد شد
  • مشارکت کننده ای که تغییرات را ایجاد کرده است

پس از آن، شماره SHA commit انتخابی خود را در دستور زیر قرار دهید:

git cherry-pick --no-commit <commit SHA number> 

مرحله 2: نقاط و گیاهان را بررسی کنید

پس از اجرای --no-commit دستور، اکنون وقت آن است که commit انتخابی خود را بررسی کنید. با انجام دستورات زیر می توانید این کار را انجام دهید:

  • git diff : این دستور تمام خطوط اضافه شده، حذف شده یا اصلاح شده توسط cherry-picked commit را به شما نشان می دهد. اگر کسی در حال همکاری در ترجمه باشد چگونه به نظر می رسد:
git diff 2f410g1
diff --git a/01-intro.md b/01-intro.md
index 1234567890123456789012345678901234567890..0000000000000000000000000000000000000000
--- a/01-intro.md
+++ b/01-intro.md
@@ -1,3 +1,4 @@
- Hello, everyone!
+ Bonjour, tout moun!
- Welcome to our course!
+ [Placeholder for French intro]
+ Bonjour, amis!

  • git show commit SHA : با این نسخه از git show با دستور، نام مشارکت کننده، تاریخ ارتکاب، ایمیل او و لیست تغییراتی که انجام داده اند را خواهید دید. اگر بخواهیم عدد SHA را از مثال قبلی بگیریم و از این دستور استفاده کنیم، در اینجا خروجی به نظر می رسد:
git show 2f410g1 (Frenchify intro and materials!)
Author: John (johnseed@example.com)
Date:   1402-12-18 18:07:15 -0500

Bonjour, le monde!  Time to add French translations to our intro and course materials.

* **01-intro.md:** Warm welcome and placeholder for the French translation.
* **materials.md:** Module descriptions replaced with [placeholders] for French versions.

... and other exciting French changes in 4 more files!

اکنون که روش بازرسی خود را انتخاب کرده اید، برای ایجاد تغییرات به فایل های خود بروید و مطابق شکل زیر یک پیام commit ایجاد کنید.

git commit -m <"message">

از آنجا، تغییرات را به شعبه درخواست کشش خود فشار دهید.

پیشنهاد می‌کنیم بخوانید:  روش ادغام اسناد ورد در پایتون - سه روش موثر با مثال

اکنون، —no—commit این تنها استراتژی نیست که شما می توانید برای جلوگیری از commit های تکراری استفاده کنید. یکی دیگه رو ببینیم

استراتژی 2: ایجاد برخی تغییرات با --edit

اگر ویرایش‌هایی را می‌دانید که می‌خواهید در commitی که انتخاب کرده‌اید انجام دهید، پس --edit دستور برای شماست اینجا در عمل است:

git cherry-pick -e 2f450g1
diff --git a/docs/content/pets.md b/docs/content/pets.md
index abcdef12..34567890 100644
--- a/docs/content/pets.md
+++ a/docs/content/pets.md
@@ -1,4 +1,5 @@
 # Pets
 
 This is a file about pets.
+New content added about pets.
 
 ## Different types of pets
# Continue cherry picking process
git cherry-pick --continue
# Change commit message
git commit -m "feat: add section"

همانطور که در قطعه کد نشان داده شده است، ما یک cherry-pick تعاملی از یک commit را آغاز کردیم که حاوی تغییراتی در pets.md فایل. در هنگام چیدن گیلاس process، می توانید ویرایش های مستقیم فایل را انجام دهید، از جمله افزودن محتوای جدید و تغییر عنوان. از آنجا، یک پیام commit جدید ایجاد کردیم و تغییرات را به شاخه خود منتقل کردیم.

شروع به چیدن

راهبردهایی وجود دارد که به شما کمک می کند در هنگام چیدن گیلاس از انجام تعهدات تکراری جلوگیری کنید.

استفاده موثر از این دستور نه تنها کار را برای شما آسان تر می کند روی کمک های مشترک، اما همچنین تاریخ تعهد شما را تمیز نگه می دارد.

اگر می‌خواهید درباره تعهدات چیدن گیلاس بیشتر بدانید و می‌خواهید از این مهارت‌ها استفاده کنید، این راهنمای Atlassian و این دوره آموزشی OpenSauced را بررسی کنید. همچنین برای مشاهده سایر محتوای فنی من و ارتباط با من، BioDrop را بررسی کنید.

وام

تصویر commit history از چگونه ترتیب commit ها را در GitHub Pull Requests برطرف کنیم توسط اندرو لاک