فصل سوم: شاخه‌بندی و ادغام

ادغام شاخه‌ها با git merge

ترکیب کردن کار دو شاخه

وقتی کار روی یک شاخه‌ی ویژگی تمام شد، باید آن را با شاخه‌ی اصلی ترکیب کنیم. برای این کار ابتدا به شاخه‌ی مقصد (معمولاً main) می‌رویم و سپس شاخه‌ی منبع را merge می‌کنیم:

git switch main
git merge feature/login

گیت دو نوع merge اصلی دارد. اگر از زمان جدا شدن شاخه‌ی feature، شاخه‌ی main هیچ commit جدیدی نگرفته باشد، گیت یک fast-forward merge انجام می‌دهد؛ یعنی فقط اشاره‌گر main را جلو می‌برد، بدون ساختن commit جدید. اما اگر هر دو شاخه پیشرفت جداگانه داشته باشند، گیت یک merge commit جدید می‌سازد که دو والد دارد و تاریخچه‌ی هر دو شاخه را در خود نگه می‌دارد.

گراف تاریخچه پس از merge

با دستور زیر می‌توان این ساختار دوشاخه‌ای را به‌صورت گرافیکی دید:

git log --oneline --graph --all

یک نکته‌ی مهم عملی: قبل از merge کردن، همیشه مطمئن شوید هر دو شاخه به‌روز هستند و کد شما اجرا و تست می‌شود. بسیاری از تیم‌ها به‌جای merge مستقیم روی main، از Pull Request روی گیت‌هاب استفاده می‌کنند تا merge پس از بررسی کد انجام شود؛ موضوعی که در فصل مربوط به گیت‌هاب با جزئیات بررسی می‌کنیم.

برای ذخیره‌ی پیشرفت و شرکت در آزمون، وارد شوید — رایگان است.