سؤال

هل من الممكن ضبط git حتى أتمكن من استخدام المقارنة ثلاثية في KDIFF3؟

لديّ فرعان مختلفان تمامًا عن التحديق التلقائي لهما ، علي ببساطة التحقق من كل نقطة دمج وأعتقد أن أفضل طريقة هي التحقق من الفرع الذي أريد التغييرات من الفرع الآخر وأقول

git difftool HEAD_OF_OTHER_BRANCH -- .

ثم حدد ملف دمج في KDIFF3. بعد مرور الملفات على الملفات.

لقد قمت بإعداد Merge.ConflictStyle و Diff.ConflictStyle إلى Diff3 لكن KDIFF3 لا يزال يبدأ مع فرق في اتجاهين. هل هذا ممكن؟ أظن أنه إذا كان GIT يرسل أيضًا تجزئة الأجداد المشتركة كمعلمة ، فهذا ممكن ، لكن هل ذلك؟

هنالك نقاش حول كيفية القيام بذلك مع SVN و BC3 ، لكنني لم أجد أي شيء لـ GIT و KDIFF3.

هل كانت مفيدة؟

المحلول

يبدو أن GIT Diff لا يفعل سوى فرق ثنائية الاتجاه (وهو أمر منطقي لإنشاء التصحيح وما إلى ذلك) إلا في حالة دمج ، يجب عليك القيام بدمج لذلك. كنت في موقف مماثل في ذلك اليوم وانتهى بي الأمر إلى Mergin باستخدام ours إستراتيجية. هذا نجح ولكن لم يكن مثاليًا. ربما نحتاج إلى استراتيجية دمج "غير مرنة" لا تحاول حل أي تعارضات. قد تكون قادرًا على محاكاة ملفات .git/merge_* وتعيين جميع الملفات على أنها متضاربة.
وإلا فإن الحل الواضح هو الخروج 3 دليل مختلف وتشغيل KDIFF3 ، ولكن أعتقد أنك تبحث عن حل أكثر أناقة

نصائح أخرى

قم بتشغيل هذا على سطر الأوامر:

git config --global mergetool.kdiff3.path /path/for/your/kdiff3/binary  

ثم ، عند حل النزاعات ، عليك فقط القيام به:

git mergetool --tool=kdiff3
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top