از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
نحوه استفاده از Git Rebase – آموزش برای مبتدیان
سرفصلهای مطلب
چشم انداز مهندسی نرم افزار دائما در حال تغییر است. به روز ماندن در مورد فناوری های جدید کاملاً حیاتی است.
اما بهعنوان توسعهدهندگان، گاهی اوقات فراموش میکنیم که چقدر مهم است که در فناوریهای آزمایش شده و واقعی که ستون فقرات توسعه نرمافزار هستند – مانند سیستمهای کنترل نسخه مانند Git کاوش کنیم.
در این مقاله، ما نگاهی به جایگزینی برای دستور ادغام git خواهیم داشت. آن جایگزین git rebase است.
آشنایی با Git Rebase
Git rebase یک ویژگی قدرتمند Git است که توانایی بازنویسی و سازماندهی مجدد تاریخچه commit شما را دارد. Git rebase به شما این امکان را می دهد که پایه شاخه خود را تغییر دهید.
برخلاف ادغام که یک commit جدید ادغام ایجاد می کند و تاریخچه هر دو شاخه را با هم ترکیب می کند، rebasing commit های یک شاخه را به شاخه دیگر بازپخش می کند. این منجر به یک تاریخچه ارتکاب خطی می شود که خواندن و درک آن را آسان تر می کند.
تنظیم صحنه با Git Merge
تفاوت بین git merge و git rebase را متوجه نشدید؟ بیایید یک مثال را در نظر بگیریم. شما در حال کار بر روی یک تغییر جدید هستید، بنابراین یک شعبه جدید ایجاد می کنید git checkout -b
. سپس تغییراتی را در شعبه جدید خود اعمال می کنید.
در این بین، شخص دیگری که روی بخش جداگانه ای از سیستم کار می کند، در Pull Request خودش ادغام می شود! تاریخچه git اکنون کمی شبیه به این است، زیرا آنها هیچ زمینه یا دانشی از تغییرات شما ندارند.
تغییرات خود را با آخرین کامیت نهایی به پایان می رسانید. اما برای بازگرداندن آن به شعبه اصلی چه کاری انجام می دهید؟
خوب، شما دو گزینه دارید. اگر قبلاً از Git استفاده کرده باشید، دستوری است که احتمالاً با آن آشنا هستید: git merge. نتیجه نهایی کمی شبیه به این است.
همانطور که می بینید، ما یک commit اضافی فقط برای ادغام داریم. تاریخ از اینجا ادامه دارد و این خوب است! بسیاری از کدنویس ها با استفاده از commit های ادغام به خوبی کار می کنند. اما اگر شعبه ای با عمر طولانی تری داشته باشید که باید آن را به روز نگه دارید، چه؟
در این مورد، ما روی شاخه ای به نام کار می کنیم foo
. تعهدات ما آنهایی هستند که نظرات دارند، some other thing
، adding test
، و addressing comments.
نگاهی به تاریخ بیندازید.
آن ها Merge branch ‘main’ into foo
commit ها چندان مفید به نظر نمی رسند – آنها صرفاً لجستیکی هستند و در واقع تغییراتی را که در شعبه خود ایجاد می کنید را توصیف نمی کنند. همچنین کمی سخت است که در مورد تغییرات متوالی که در شعبه فعلی خود ایجاد کرده اید، هنگام نگاه کردن به تاریخچه Git خود استدلال کنید.
نحوه انجام rebase
بیایید جایگزین را با git rebase بررسی کنیم. با در نظر گرفتن مثال بالا، بیایید با commit نهایی خود درست قبل از اینکه آماده ادغام مجدد در main
.
این بار، ما یک rebase git را انجام می دهیم. این در واقع commit های شما را دوباره پخش می کند بر روی از commit های جدید (معروف به HEAD) از main
، جلوگیری از ادغام commit.
پس چگونه این کار را انجام دهیم؟ در حالی که در شاخه جانبی خود هستید (در مورد ما، foo
)، می خواهید کارهای زیر را انجام دهید.
- به خود تغییر دهید
main
شعبه باgit checkout main
- محلی خود را به روز کنید
main
شعبه باgit pull
. این بدین ترتیب است که ما جدیدترین HEAD را داریمmain
برای rebase موجود است. - به شعبه خود برگردید
foo
باgit checkout foo
- استفاده کنید
git rebase main
، با این کار rebase کامل می شود و commit های شما در بالای HEAD از دوباره پخش می شوندmain
.
در مقایسه با مثال قبلی، با همان commit های «چیز دیگری»، «افزودن آزمایش» و «آدرس کردن نظرات» چگونه به نظر می رسد؟
بسیار خوب! تمیزتر است، و با نگاهی به تاریخچه شعبه من، استدلال در مورد تغییرات در شعبه من بسیار ساده است. من فقط باید بدانم از کجا شروع کردم (commit hash 2a2db46
).
Rebase Best Practices
در حالی که rebase git بدون شک سابقه تعهد شما را تمیزتر نگه می دارد، چند نکته وجود دارد که باید به آنها توجه داشت:
- از rebase استفاده کنید فقط برای شعب محلی شاخه هایی را که دیگران روی آن کار می کنند تغییر ندهید. Rebase تغییر می کند تاریخچه ارتکاب، و دیگران در مورد آن نمی دانند.
- به طور منظم شعبه های محلی خود را واکشی و تغییر دهید تا با شعبه اصلی به روز بمانید. درگیری ها کثیف می شوند! زودتر و اغلب بازبینی کنید.
نتیجه
در حالی که گیر افتادن در فناوری های جدید و در حال انفجار مانند ابزار هوش مصنوعی و محاسبات لبه آسان است، برای ما به عنوان توسعه دهندگان نیز مهم است که یک گام به عقب برداریم و مطمئن شویم که از ابزارهای آزمایش شده و واقعی مانند Git تا حداکثر پتانسیل خود استفاده می کنیم. .
در این مقاله نگاهی انداختیم به git rebase
و مثالی زد که چرا rebasing می تواند ابزار خوبی در جعبه ابزار شما باشد.
تغییر پایه مبارک!
منتشر شده در 1402-12-26 09:54:05