روز برنامه‌نویس مبارک 🤩🎉 از هدایای روز برنامه‌نویس جا نمونی ⌛
۰ ثانیه
۰ دقیقه
۰ ساعت
۰ امیر حق شناس
رفع تداخل‌ها (Fix Conflicts)
جامعه Html & CSS ایجاد شده در ۲۱ شهریور ۱۴۰۴

رفع تداخل‌ها (Fix Conflicts) در Git

🔹 تداخل (Conflict) چیست؟

  • وقتی چند تغییر همزمان روی یک فایل یا یک خط از کد اعمال می‌شه (مثلاً در merge یا rebase)، گیت نمی‌دونه کدوم تغییر درسته.
  • در این حالت Conflict ایجاد می‌شه.

🔹 موقعیت‌هایی که تداخل پیش میاد:

  1. Merge → ادغام دو شاخه که تغییرات مشابهی روی فایل دارند.
  2. Rebase → بازنویسی تاریخچه و جابجایی commitها.
  3. Cherry-pick → وقتی commit خاصی روی شاخه‌ی دیگری اعمال می‌شه.

🔹 نشانه‌های Conflict:

  • گیت فایل‌ها رو با نشانه‌های خاصی علامت‌گذاری می‌کنه:

 

<<<<<<< HEAD کدی که تو شاخه‌ی فعلی هست ======= کدی که از شاخه‌ی دیگر اومده >>>>>>> branch-name


🔹 مراحل رفع Conflict:

  1. اجرای دستور و مشاهده وضعیت:

     

    git status

    → فایل‌هایی که conflict دارن مشخص می‌شن.

  2. باز کردن فایل و ویرایش دستی:
    • انتخاب یا ترکیب بخش درست از تغییرات.
    • پاک کردن نشانه‌های <<<<<<<, =======, >>>>>>>.
  3. علامت‌گذاری فایل به عنوان حل‌شده:

     

    git add <filename>

  4. ادامه‌ی عملیات:
    • اگر merge بوده:

       

      git commit

    • اگر rebase بوده:

       

      git rebase --continue 


🔹 ابزارهای کمکی:

  • VS Code → به‌طور خودکار پیشنهاد انتخاب تغییرات می‌ده.
  • git mergetool → ابزار گرافیکی برای مدیریت تداخل.

👉 نتیجه: رفع conflict یعنی مشخص کردن اینکه کد نهایی باید شامل کد کدوم بخش (یا ترکیبی از هر دو) باشه و سپس ادامه دادن فرآیند.