0 تصويتات
منذ في تصنيف البرمجة بواسطة admin6 (311ألف نقاط)
كيف أحل تعارضات Git؟

1 إجابة واحدة

0 تصويتات
منذ بواسطة admin6 (311ألف نقاط)

كيف أحل تعارضات Git؟

حل تعارضات Git هو عملية ضرورية تحدث عندما يحاول أكثر من شخص تعديل نفس السطر من الكود أو الملف في نفس الوقت، أو عندما تحاول دمج فرعين (branches) يحتويان على تغييرات متعارضة. لتجنب فقدان أي بيانات أو حدوث تعارضات أكبر، يجب التعامل مع هذه التعارضات بطريقة صحيحة ودقيقة.

ما هي تعارضات Git ولماذا تحدث؟

تعارضات Git تحدث عندما يكون Git غير قادر على دمج التغييرات تلقائيًا بسبب اختلافات متضاربة في الملفات بين الفروع أو بين نسخة العمل ونسخة المخزن (staging). على سبيل المثال، إذا قمت أنت وزميلك بتعديل نفس السطر في ملف معين على فرعين مختلفين، وعندما تحاول دمجهما معًا، سيكشف Git التعارض لأنه لا يمكنه تحديد التعديل الصحيح دون تدخلك.

كيف تعرف أن هناك تعارض في Git؟

عند وجود تعارض، يعرض Git رسالة خطأ مثل "Automatic merge failed; fix conflicts and then commit the result" أو "CONFLICT (content): Merge conflict in ". كما يظهر Git الملفات المتأثرة في حالة "Unmerged" عند تنفيذ الأمر git status.

خطوات حل تعارضات Git

1. التعرف على الملفات المتعارضة: أدخل الأمر git status، وستجد قائمة بالملفات التي تحتوي على تعارضات.

2. فتح الملفات المتعارضة: عندما تفتح الملف ترى أن Git وضع علامات لتحديد الأماكن المتعارضة. عادة ما تكون المناطق المتعارضة مغلّفة بهذا الشكل:


<<<<<<< HEAD

الكود الخاص بفرعك الحالي

=======

الكود الخاص بالفرع الآخر

>>>>>>>

3. مراجعة التغييرات المتعارضة: تحتاج إلى قراءة كلا الجزأين وفهم الفروقات. إذ يمكن قبول أحد التعديلات، أو دمجها يدويًا بطريقة تدمج المزايا من التعديلين، أو إعادة كتابة الجزء المتعارض بشكل جديد.

4. حذف علامات التعارض: بعد الانتهاء من الدمج أو الاختيار بين التعديلين، يجب التأكد من حذف كل علامات التعارض المعتادة مثل <<<<<<< و======= و>>>>>>>، لأن وجودها في الكود تسبب مشاكل أثناء التشغيل.

5. اختبار الكود: من الضروري تجربة الكود وتجهيزه لضمان أنه يعمل كما ينبغي بعد حل التعارضات.

6. إضافة التغييرات وحفظها: بعد حل كل التعارضات، قم بتنفيذ الأمر git add <filename> لكل ملف قمت بتعديله. بعدها أتمّم العملية بالتزام (commit) جديد باستخدام git commit.

أدوات مساعدة لحل التعارضات

هناك العديد من الأدوات التي تساعد على تسهيل حل تعارضات Git، مثل:

- Git mergetool: هو أمر مدمج مع Git يسمح باستخدام أدوات خارجية لواجهة المستخدم لتسهيل حل التعارضات. مثلا: Beyond Compare، Meld، KDiff3.

- واجهات المستخدم الرسومية: العديد من برامج التحكم بالإصدارات مثل SourceTree، GitKraken، أو GitHub Desktop توفر أدوات مدمجة لعرض التعارضات وحلها بسهولة.

استخدام هذه الأدوات يقلل من فرص الخطأ ويسهل العمل خصوصًا في المشاريع الكبيرة أو المعقدة.

...