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

حل تعارض (conflict)

وقتی گیت نمی‌تواند خودکار تصمیم بگیرد

تعارض یا conflict زمانی رخ می‌دهد که دو شاخه، یک بخش از یک فایل را به‌شکل متفاوتی تغییر داده باشند و گیت نتواند به‌تنهایی تصمیم بگیرد کدام نسخه درست است. این اتفاق معمولاً هنگام merge یا rebase رخ می‌دهد و کاملاً طبیعی است، به‌خصوص در تیم‌های چندنفره.

وقتی conflict رخ دهد، گیت فایل مربوطه را با علامت‌های ویژه مشخص می‌کند:

<<<<<<< HEAD
قیمت محصول: ۵۰۰۰۰ تومان
=======
قیمت محصول: ۴۵۰۰۰ تومان
>>>>>>> feature/discount

بخش بالای ======= نسخه‌ی شاخه‌ی فعلی شماست و بخش پایین نسخه‌ی شاخه‌ای است که در حال merge کردن آن هستید. برای حل تعارض باید فایل را دستی ویرایش کنید، نسخه‌ی نهایی درست را بنویسید و تمام علامت‌های <<<<<<<، ======= و >>>>>>> را حذف کنید. سپس فایل را add و commit می‌کنید تا merge کامل شود:

git add price.py
git commit

اگر در وسط یک merge یا rebase پشیمان شدید، می‌توانید با git merge --abort یا git rebase --abort به وضعیت قبل از شروع عملیات برگردید. بهترین راه برای کاهش تعارض‌ها، commitهای کوچک و مکرر، ارتباط تیمی خوب درباره‌ی اینکه هرکس روی کدام بخش کار می‌کند، و merge کردن مکرر main در شاخه‌های طولانی‌مدت است.

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