منسّق Diff

مقارنة اختلافات النص والكود مع تمييز منسق وعرض جنب إلى جنب

يعمل محليًا

الأصلي

المعدَّل

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

انقر على "قارن" لرؤية الاختلافات بين الجانبين

نصائح

  • استخدم مسافة بادئة متسقة في كلا النصين لمقارنة سطرية أكثر دقة.
  • العرض الموحد أفضل للتغييرات الصغيرة. العرض جنب إلى جنب أفضل للاختلافات الكبيرة.
  • إضافة   حذف   تغيير
  • استخدم زر التبديل لعكس اتجاه المقارنة ورؤية الإضافات كإزالات.
  • Ctrl/Cmd + Enter ينفّذ المقارنة من أي من حقلي الإدخال.

وضعان لـ Diff، يتم اختيارهما تلقائيًا

يبدأ Data Diff من أي محتوى تلصقه. عندما يُفسَّر الطرفان كـ JSON يتحوّل إلى diff بنيوي؛ ولباقي الحالات يقارن سطرًا بسطر. يمكنك أيضًا تثبيت وضع معيّن يدويًا عبر علامات التبويب أعلى النتيجة.

ما يعرضه الـ diff البنيوي لـ JSON

  • أُضيف — مفتاح أو فهرس موجود فقط في الجانب المعدَّل، مع معاينة لقيمته.
  • أُزيل — مفتاح أو فهرس موجود فقط في الجانب الأصلي.
  • تغيّر — المسار نفسه يحمل قيمة مختلفة في كل جانب، معروضة بصيغة قبل → بعد.
  • تغيّر النوع — المسار يحمل كائنًا (object) في جانب وقيمة عددية (scalar) أو مصفوفة في الجانب الآخر.
  • كل عنصر يحمل مسارًا بصيغة $.store.books[0].title نفسها المستخدمة في مفتشي JSON وXML وYAML، بحيث يمكنك الانتقال إليه مباشرة في المصدر.

Diff نصي، عندما تحتاجه

المقارنة سطرًا بسطر تميّز كل سطر مضاف ومحذوف مع أرقام الأسطر. تعمل على الأكواد والسجلات وملفات الإعدادات وأي نص — بما في ذلك JSON الذي تغيّر تنسيقه دون تغيّر بياناته.

مثال: ما يكتشفه وضع JSON ولا يكتشفه الوضع النصي

المقطعان أدناه يختلفان فقط في ترتيب المفاتيح والمسافات البادئة. الـ diff النصي يعتبر كل سطر تقريبًا متغيّرًا؛ بينما الـ diff البنيوي لـ JSON يبلّغ بشكل صحيح عن صفر تغييرات.

A
{
  "name": "web",
  "version": "1.0"
}
B
{
  "version": "1.0",
  "name": "web"
}

أين تندرج هذه الأداة في سير عملك

Data Diff هو خطوة المقارنة في مساحة العمل. أرسل أي مستند إلى هنا من الأدوات الأخرى:

الأسئلة الشائعة

إجابات على الأسئلة الشائعة حول تنسيق Diff Formatter

نعم، منسّق Diff لدينا مجاني تماماً ولا يتطلب تسجيلاً. تتم جميع المعالجة في متصفحك.

يمكنك مقارنة أي محتوى نصي: كود، ملفات تكوين، JSON، XML، نص عادي، أو أي تنسيق آخر قائم على النص.

الأسطر المضافة تظهر بخلفية خضراء والأسطر المحذوفة بخلفية حمراء والأسطر المتغيرة تعرض كلا الإصدارين جنباً إلى جنب.

نعم. انقر على زر التبديل لعكس النصين الأصلي والمعدّل، لتحويل الإضافات إلى إزالات والعكس صحيح.

تستخدم الأداة خوارزمية Myers للمقارنة، وهي نفس الخوارزمية المستخدمة في Git لمقارنة النصوص، مما يضمن diffs دقيقة ومصغرة.

تنسيق unified diff (-u)، كما ينتجه git diff و diff -u وكل أنظمة إدارة الإصدارات الرئيسية - قسم واحد أو أكثر لكل ملف، لكل منها ترويسات ---/+++ وعلامات hunks @@ وأسطر +/- وأسطر السياق. توثّق GNU diffutils التنسيق الدقيق؛ ويعيد المنسّق تنسيق hunks بأرقام أسطر متحاذية وتلوين نحوي.

‏@@ -3,7 +3,8 @@ تعني: في الملف القديم، بدءًا من السطر 3، تُعرض 7 أسطر؛ وفي الملف الجديد، يبدأ القسم المقابل عند السطر 3 ويمتد على 8 أسطر. قراءة هذه الأعداد تمنحك حجم التغيير بنظرة واحدة - هنا أُضيف سطر واحد. يحافظ المنسّق على هذه العلامات كما هي لأن patch(1) و git apply يعتمدان عليها.

لا - فهو ينسّق patches ويشرحها ولا يطبقها. للتطبيق، استخدم git apply أو patch -p1؛ ولدمج hunks المتضاربة، استخدم أداة الدمج في نظام إدارة الإصدارات لديك. التنسيق للقراءة فقط بشكل مقصود، حتى تتمكن من لصق أي patch بأمان - بما في ذلك تلك التي تحتوي على hunks مرفوضة أو متضاربة - ومراجعتها بشكل مقروء.

{-- * External Resources Component(#19 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / 官方语言文档 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}

مراجع موثوقة

المعايير والوثائق الرسمية التي تُعرِّف الصيغ التي تعمل بها هذه الأداة.

الأدوات ذات الصلة