از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش استفاده از Git Cherry Pick و اجتناب از تعهدات تکراری
سرفصلهای مطلب
یک درخت گیلاس زیبا را تصور کنید که پر از میوه های شیرین، قرمز و گرد آویزان است روی شاخه های سرسبز و درخشان اما تصور کنید اگر آن گیلاس ها آنقدر سریع رشد کنند که شاخه ها شروع به خم شدن، همپوشانی و شکستن کنند…آشوب به نظر می رسد درست است؟
این چیزی است که اگر از Git استفاده نکنید ممکن است رخ دهد cherry-pick
در پروژه های متن باز به درستی فرمان دهید. این دستور همانند انتخاب دستی بهترین گیلاس ها و قرار دادن آنها در یک سبد، به شما امکان می دهد تا commit های فردی را از یک شاخه به شاخه دیگر منتقل کنید.
برای زمانی که با شخص دیگری همکاری می کنید عالی است روی یک پروژه منبع باز، زیرا شما را از مشکل ادغام کل شاخه ها نجات می دهد.
اکنون به اندازه Git قدرتمند و عالی است cherry-pick
دستور این است که می تواند commit های تکراری ایجاد کند و به روز رسانی پایگاه کد پروژه یا حل اشکالات را برای نگهبانان منبع باز دشوار کند.
ترسیده؟ نترس، همکار منبع باز من. من راهبردهایی دارم که میتوانید از آنها برای جلوگیری از تکراری شدن در هنگام ارتکاب گیلاس استفاده کنید.
استراتژی 1: استفاده از --no commit
گزینه
این گزینه یکی از رایج ترین روش ها برای جلوگیری از commit های تکراری است. این تغییرات را از یک شاخه کپی می کند اما یک commit جدید ایجاد نمی کند، که اگر در حال کار هستید می تواند بسیار مفید باشد. روی مشارکت با شخص دیگری بیایید آن را در عمل ببینیم.
مرحله 1: گیلاس خود را انتخاب کنید (تعهد کنید)
پس از انتخاب پروژه منبع باز، شما و شریکتان در حال کار هستید روی، به چنگال آنها بروید و کلیک کنید روی را متعهد می شود برگه
از آنجا، تعهدی را که می خواهید قرار دهید انتخاب کنید روی درخواست کشش خود را با کلیک کردن روی شماره 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 برطرف کنیم توسط اندرو لاک
منتشر شده در 1403-01-04 05:06:06