merge یا ادغام با تداخل (conflicting merge)
ادغام با تداخل (conflicting merge) زمانی است که تغییرات در شاخههای مختلف بر روی یک یا چند خط کد با هم در تضاد باشند و نیاز به رفع تداخل دارد. در این مورد، کاربر باید به صورت دستی تداخلها را حل کند.
merge یا ادغام با تداخل
در این حالت حداقل یک تداخل یا conflict بین کامیت های شاخه ای که قرار است merge شود با کامیت های master وجود دارد.
برای merge یا ادغام در این حالت به ترتیب مراحل زیر را انجام دهید:
- با دستور git switch master پوینتر یا اشاره گر را به شاخه اصلی یا master انتقال
دهید.
bashgit switch master
- توسط دستور زیر merge یا ادغام را انجام دهید:
bashgit merge <branch-name>
در دستور فوق منظور از <branch-name> نام شاخه ای است که قرار است merge یا ادغام شود، و شما می توانید هر نامی را جایگزین آن کنید.

به عنوان مثال فرض کنید قصد داریم شاخه branch-1 که در شکل زیر نشان داده شده را با شاخه اصلی یا همان master ادغام یا merge کنیم.

در صورتی که HEAD یا نشانه گر روی شاخه master می باشد مطابق شکل زیر از دستور git merge branch-1 استفاده می کنیم:

چون متن استفاده شده در فایل text-1.txt در شاخه متفاوت است با master تداخل یا conflict برای فایل text-1.txt مطابق شکل فوق نمایش داده می شود و همانگونه که در شکل زیر نشان داده شده در مقابل نام این فایل یک علامت تعجب ! قرار گرفته است:

در این صورت اگر روی این فایل مطابق شکل زیر کلیک کنید خواهید دید که هر دو متن بین >>>>>>>>>> و علامت ========= قرار گرفته اند و در بالای این متن ها چهار گزینه برای انتخاب به شرح زیر وجود دارد:
- Accept Current Change
- Accept Incoming Change
- Accept Both Changes
- Compare Changes
در این صورت محتوای فایل موجود در master جایگزین می شود یعنی متن بالایی
در این صورت محتوای فایل موجود روی شاخه جایگزین می گردد یعنی متن پایینی
هر دو متن باهم اضافه می شوند
هر دو متن نمایش داده می شود تا باهم مقایسه کنیم و سپس یک یا هر دو را انتخاب کنیم.

برای مثال اگر روی گزینه Accept Both Changes کلیک کنیم به صورت شکل زیر هر دو متن اضافه خواهد شد:

حال بایستی این تغییرات را توسط دستور git add مطابق شکل زیر به استیج اضافه کنیم و کامیت کنیم:
git add .
و در ادامه با دستور زیر کامیت را انجام دهید.
git commit -m "your message"

اگر مراحل فوق را به درستی انجام داده باشید و وارد تاریخچه گیت یا همان git history شوید خواهید دید که مطابق شکل زیر شاخه beranch-1 با master ادغام یا merge شده است.
