Farzad Afi Logo

FarzadAfi

آموزش تخصصی برنامه نویسی

Git Merge | ادغام شاخه ها درگیت

📖توضیحات درس

🎥 این ویدیو قسمت چهل و هشتم از بوت‌کمپ رایگان جاواست. 📚 Git – آشنایی کامل با Merge در گیت در این جلسه وارد یکی از مهم‌ترین مفاهیم Git می‌شویم: Merge. وقتی با شاخه‌های مختلف کار می‌کنید، در نهایت نیاز دارید تغییرات آن‌ها را با هم ترکیب کنید؛ این وظیفه‌ای است که دستور git merge بر عهده دارد و نقش کلیدی در مدیریت پروژه‌های واقعی و همکاری تیمی ایفا می‌کند. در این ویدیو یاد می‌گیری: - Merge چیست و چه جایگاهی در Git دارد - چگونه شاخه‌ها را با یکدیگر ادغام کنیم - نحوه برخورد با Conflict‌ها هنگام Merge - نکات و Best Practiceهای مهم برای داشتن Merge تمیز و قابل‌اعتماد - مرور کامل مباحث برای تثبیت بهتر مطالب 💬 گروه پرسش و پاسخ تلگرام: @programmingByFarzadAfi 💬 گروه پرسش و پاسخ بله: @programming_by_farzadafi هر سوالی داشتی، می‌تونی داخل گروه بپرسی؛ من یا مربی‌های گروه کمکت می‌کنیم 💬 🎯 بوت‌کمپ رایگان جاوا – آموزش پروژه‌محور برای یادگیری عمیق و ورود به بازار کار
00:36:30🎯رایگان

📄جزوه

مفاهیم کلیدی

  • Git Merge عملیاتی در گیت که به منظور ترکیب تغییرات و تاریخچه یک شاخه (Branch) در شاخه‌ای دیگر استفاده می‌شود. این کار معمولاً برای انتقال کدهای نهایی شده از یک محیط ایزوله به شاخه اصلی پروژه انجام می‌گیرد.

  • Isolation توسعه کد در یک برنچ جداگانه برای جلوگیری از ایجاد اختلال در کد اصلی پروژه. این کار اجازه می‌دهد فیچرهای مختلف بدون تاثیر مخرب بر یکدیگر توسعه یابند.

  • Destination Branch شاخه‌ای که قرار است تغییرات جدید را دریافت کند (مقصد). برای انجام مرج، ابتدا باید به این شاخه سوئیچ کرد.

  • Merge Conflict وضعیتی که در آن گیت نمی‌تواند به صورت خودکار تغییرات دو شاخه را ترکیب کند؛ این اتفاق زمانی رخ می‌دهد که در هر دو شاخه، خطوط یکسانی از یک فایل تغییر کرده باشند.

  • Fast-Forward نوعی از مرج که در آن شاخه مقصد هیچ تغییری نسبت به نقطه جدایی برنچ جدید نداشته و گیت صرفاً اشاره‌گر شاخه مقصد را به آخرین کامیت شاخه جدید منتقل می‌کند.

نکات مهم مصاحبه‌ای

  • برای مرج کردن یک شاخه به شاخه اصلی چه مراحلی باید طی شود؟ ابتدا باید با دستور git checkout به شاخه مقصد (مثلاً master) رفت و سپس دستور git merge <branch-name> را اجرا کرد تا تغییرات شاخه منبع به مقصد منتقل شود.

  • چه زمانی Merge Conflict رخ می‌دهد و چگونه حل می‌شود؟ زمانی که دو نفر روی یک خط مشخص از یک فایل در دو شاخه متفاوت کار کرده باشند و بخواهند آن‌ها را مرج کنند. برای حل آن، باید فایل را باز کرده، کد درست را انتخاب و بخش‌های اضافی گیت را پاک کرد، سپس فایل را add و commit نمود.

  • چرا پیشنهاد می‌شود شاخه اصلی (Main/Master) را به صورت منظم در شاخه فیچر خود مرج کنیم؟ برای اینکه شاخه ما همیشه با آخرین تغییرات تیم به‌روز باشد. این کار باعث می‌شود تداخل‌ها (Conflicts) به جای انباشته شدن، به صورت تدریجی و در حجم کمتر شناسایی و حل شوند.

  • آیا مرج فقط با شاخه‌های اصلی ممکن است؟ خیر، شما می‌توانید هر دو شاخه‌ای را با هم مرج کنید؛ لزوماً یکی از آن‌ها نباید master یا main باشد.

مثال یا سناریوی کاربردی

فرض کنید روی شاخه master هستید و می‌خواهید متدی را اکسترکت کنید:

  1. یک شاخه جدید به نام feature-print می‌سازید و به آن سوئیچ می‌کنید.
  2. کد خود را تغییر داده و یک commit ثبت می‌کنید.
  3. به شاخه master بازمی‌گردید. در این لحظه تغییرات در master دیده نمی‌شود.
  4. دستور git merge feature-print را اجرا می‌کنید. اکنون تغییرات به master اضافه شده است.
  5. در نهایت با دستور git branch -d feature-print شاخه اضافی را حذف می‌کنید تا محیط کار خلوت بماند.

بیشتر بدانید

  • نکته امنیتی همیشه قبل از شروع عملیات مرج، مطمئن شوید که وضعیت محیط استیج (git status) تمیز است و تغییرات ذخیره نشده ندارید، زیرا وجود فایل‌های کامیت نشده می‌تواند فرآیند مرج را با پیچیدگی مواجه کند.

  • مدیریت پروژه در محیط‌های تیمی، برنچ‌هایی که کارشان تمام شده و مرج شده‌اند را حذف کنید. این کار از سردرگمی در مدیریت تعداد زیادی برنچ قدیمی جلوگیری می‌کند.