النصوص 🔒 يعمل داخل متصفحك — لا تُرسل أي بيانات

مقارنة النصوص (Diff)

قارن بين نصّين واعرف ما الذي تغيّر، سطرًا بسطر وكلمةً بكلمة، جنبًا إلى جنب أو بصيغة unified diff.

النص الأصلي
النص المعدَّل
الصق نصّين لترى ما الذي تغيّر — لا شيء يغادر متصفحك.

مقارنة النصوص — اعرف الفرق بين نصّين

الصق النص الأصلي في الخانة الأولى والنسخة المعدَّلة في الثانية، فتظهر كل الفروق دفعة واحدة: الأسطر المحذوفة بالأحمر، والمضافة بالأخضر، وداخل كل سطر معدَّل الكلمات التي استُبدلت بالضبط. تصلح الأداة للعقود والمقالات كما تصلح للشيفرة المصدرية وملفات الإعدادات ومخرجات السجلات، ويبقى النصّان في متصفحك طوال الوقت.

البحث بالعين عن رقم تغيّر في مستند من صفحتين عمل بطيء وغير مضمون. أداة المقارنة تنجزه في أجزاء من الثانية، ولا تفوتها فاصلة انتقلت من مكانها ولا سعر صار 45 بعد أن كان 40.

طريقة مقارنة نصّين

  1. الصق النسخة الأصلية في النص الأصلي والنسخة الجديدة في النص المعدَّل.
  2. تظهر المقارنة في الأسفل وأنت تكتب، مع عدد الأسطر المضافة والمحذوفة.
  3. اختر جنبًا إلى جنب أو موحّد، وفعّل تجاهل المسافات البيضاء أو تجاهل حالة الأحرف إن كانت هذه التغييرات لا تهمك.
  4. اضغط نسخ بصيغة unified diff لتأخذ التغييرات معك على شكل ملف ترقيع (patch).

قراءة النتيجة

ما تراهمعناه
سطر أحمر على اليسار وحدهحُذف السطر
سطر أخضر على اليمين وحدهأُضيف السطر
سطر أحمر وآخر أخضر متجاورانعُدّل السطر؛ الكلمات المميَّزة هي ما تغيّر
شريط رمادي عليه عددأسطر لم تتغير أُخفيت لتبقى التغييرات أمام عينيك

خيار التغييرات فقط مع 3 أسطر حولها مفعَّل افتراضيًا، فيظهر من الملف الطويل الذي فيه تعديلان هذان التعديلان فقط مع قليل من السياق، كما في مراجعة الشيفرة. ألغِ تفعيله لترى النصّين كاملين.

جنبًا إلى جنب أم موحّد

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

على مستوى الكلمة أو الحرف أو السطر

تُقارَن الأسطر أولًا. وحين يتشابه سطر محذوف وسطر مضاف، يوضعان متجاورين ويُقارَنان من جديد، ويحدد التمييز داخل الأسطر مدى الدقة: الكلمات يناسب النثر ومعظم الشيفرة، والأحرف يلتقط خانة أو حرفًا واحدًا تغيّر في معرّف أو بصمة، وإيقاف يعرض الأسطر كاملة فقط. والأسطر التي لا يجمعها شيء لا تُفرض عليها المزاوجة، فلا يُقارَن حذف لا علاقة له كلمةً بكلمة بإضافة لا علاقة لها.

تجاهل ما لا يهم

  • تجاهل المسافات البيضاء يعدّ الأسطر التي لا تختلف إلا في المسافة البادئة أو المسافات أو علامات الجدولة متساوية. استخدمه بعد إعادة تنسيق الشيفرة أو حين يحوّل محرر ما علامات الجدولة إلى مسافات.
  • تجاهل حالة الأحرف يعامل الأحرف الكبيرة والصغيرة معاملة واحدة، وهذا مفيد مع كلمات SQL المحجوزة أو نص أُعيدت كتابته بحالة أحرف مختلفة.
  • نهايات الأسطر لا تُحسب تغييرًا أبدًا: تُوحَّد فواصل الأسطر في Windows وUnix قبل المقارنة.

كيف تعمل

تعتمد المقارنة على خوارزمية Myers، وهي نفسها التي يستخدمها Git افتراضيًا. تجد أصغر مجموعة من الأسطر المضافة والمحذوفة تحوّل أحد النصّين إلى الآخر، فتُظهر النتيجة ما عُدّل فعلًا بدل قائمة طويلة من الأسطر المنقولة. وتُستبعد أولًا الأسطر المشتركة بين النصّين في البداية والنهاية، ما يجعل مقارنة نسختين من ملف طويل سريعة: تغيير واحد في ملف من 20,000 سطر يُعثر عليه في جزء من الثانية.

إنشاء ملف ترقيع

ينتج نسخ بصيغة unified diff ملف ترقيع قياسيًا بترويسات --- و+++ ومقاطع @@ مع ثلاثة أسطر من السياق. احفظه في ملف ويمكنك تطبيقه بـ git apply changes.diff أو patch -p0 < changes.diff، ما دامت أسماء الملفات في الترويسات تطابق ملفاتك.

نصوصك تبقى خاصة

يُقارَن النصّان بواسطة JavaScript داخل الصفحة. لا يُرفع شيء ولا يُخزَّن، وهذا ما تريده حين تقارن مسودات عقود أو شيفرة لم تُنشر بعد أو أي شيء فيه بيانات شخصية.

أدوات ذات صلة

لمقارنة ملفي JSON، نسّق الاثنين أولًا بـ منسّق JSON ليتطابق ترتيب المفاتيح والمسافات البادئة، ثم قارنهما هنا. وللتحقق مما إذا كان ملفان متطابقين بايتًا ببايت دون النظر في محتواهما، قارن بصمتيهما باستخدام مولّد التجزئة.