Omnikit
المطورونالملفاتالمالجميع الأدوات
Ctrl K
أدوات المطورينأدوات الملفاتالحاسبات الماليةجميع الأدوات
الرئيسيةأدوات المطورينمدقق Conventional Commits
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

مدقق Conventional Commits

مطورون

تحقق من رسالة commit وفق Conventional Commits وcommitlint، مع الزيادة التي تعنيها في رقم الإصدار

يعمل في متصفحك. لا يُرسل أي شيء تكتبه إلى أي مكان. تم التحقق في 16 أكتوبر 2026.

يبدأ الـ conventional commit بنوع ثم نطاق (scope) اختياري ثم وصف، مثل "fix(api): handle empty response". الصق رسالة لتتحقق منها وفق القواعد الـ 12 في config-conventional الخاص بـ commitlint، وترى أجزاءها، وترى الإصدار الذي تعنيه: feat يعني minor، وfix يعني patch، والتغيير غير المتوافق يعني major.

تُرجمت هذه الصفحة آليًا من الأصل الإنجليزي. لم يراجع أي شخص هذه الترجمة بعد، لذا فالنسخة الإنجليزية هي التي يُعتمد عليها. اقرأ الأصل الإنجليزي

التالي:
  • مدقق semver اختبر الإصدارات مقابل نطاق npm مثل ^1.2.3 ورتّبها واعرف الإصدار التالي
  • مدقق package.json افحص ملف package.json كما يقرؤه npm: الاسم والإصدار والترخيص والاعتماديات والصياغة

كيف تتحقق من رسالة conventional commit

1

الصق رسالة الـ commit، أو اضغط على نوع مثل feat أو fix لتبدأ رسالة.

2

اقرأ النتيجة: كل قاعدة تخالفها الرسالة بكلمات بسيطة، مع الأجزاء التي قُرئت بها الرسالة.

3

صحّح الرسالة حتى تجتاز الفحص؛ يوضح سطر الإصدار هل تعني إصدار major أو minor أو patch.

4

لفحص pull request كامل، انتقل إلى قائمة عناوين والصق مخرجات git log --format=%s.

حول مدقق Conventional Commits

Conventional Commits صيغة صغيرة لرسائل الـ commit تستطيع الأدوات قراءتها: تختار أدوات الإصدار منها رقم الإصدار التالي، وتحوّلها أدوات سجل التغييرات (changelog) إلى ملاحظات إصدار. تفرضها فرق كثيرة باستخدام commitlint في hook من نوع commit-msg، ورفض رسالة commit إزعاج صغير شائع.

الصيغة. عنوان، ثم متن وتذييلات اختيارية، يفصل بين كل منها سطر فارغ:

الجزء مثال القاعدة
النوع feat، fix، docs واحد من 11، بأحرف صغيرة
النطاق (api) اختياري، بين قوسين
تغيير غير متوافق ! قبل النقطتين أو تذييل BREAKING CHANGE
الوصف add login page الحرف الأول صغير، بلا نقطة في النهاية
طول العنوان 100 حرف على الأكثر
التذييل Closes #123 بعد سطر فارغ

ما يتم فحصه. القواعد الاثنتا عشرة في @commitlint/config-conventional: عشرة أخطاء (نوع فارغ، حالة أحرف النوع، قائمة الأنواع، وصف فارغ، حالة أحرف الوصف، النقطة في النهاية، طول العنوان، المسافات في العنوان، طول أسطر المتن والتذييل) وتحذيران (سطر فارغ قبل المتن وقبل التذييل). يُشرح كل إخفاق بكلمات بسيطة مع طريقة إصلاحه.

زيادة الإصدار. تربط المواصفة الـ commits بالإصدار الدلالي (Semantic Versioning): يعني fix إصدار patch، وfeat إصدار minor، وأي تغيير غير متوافق، معلَّم بـ ! أو بتذييل BREAKING CHANGE، إصدار major. الأنواع الأخرى مثل docs أو chore لا تغيّر الإصدار وحدها.

pull request كامل. انتقل إلى وضع القائمة والصق مخرجات git log --format=%s main..HEAD، عنواناً واحداً في كل سطر. يجتاز كل عنوان الفحص أو يفشل فيه، ويُذكر الإصدار الناتج عنها مجتمعة.

رُوجعت النتائج مقابل @commitlint/lint 19 مع config-conventional على أكثر من 100 رسالة. كل شيء يعمل في متصفحك؛ ولا يُرسل أي شيء تكتبه إلى أي مكان.

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

ما هو الـ conventional commit؟

رسالة commit يتكون سطرها الأول من نوع، ثم نطاق اختياري بين قوسين، ثم نقطتين، ثم مسافة، ثم وصف قصير، مثل fix(api): handle empty response. تأتي الصيغة من مواصفة Conventional Commits 1.0.0، وتستخدمها الأدوات لاختيار رقم الإصدار التالي وكتابة سجلات التغييرات تلقائياً.

ما الفرق بين feat وfix وchore؟

استخدم feat لتغيير يراه المستخدمون قدرة جديدة، وfix لإصلاح خطأ، وchore لأعمال الصيانة التي لا تغيّر أياً منهما، مثل تحديث الاعتماديات. وتتبعها الإصدارات: feat يُنتج إصدار minor، وfix إصدار patch، وchore لا يُنتج إصداراً وحده. أما docs وstyle وrefactor وperf وtest وbuild وci فهي الأنواع القياسية الأخرى.

كيف أعلّم تغييراً غير متوافق في commit؟

ضع علامة تعجب قبل النقطتين، كما في feat(api)!: remove the v1 endpoints، أو أضف بعد سطر فارغ تذييلاً يبدأ بـ BREAKING CHANGE: ويذكر ما الذي يتعطل. أيٌّ منهما يجعل الإصدار major مهما كان النوع. واستخدامهما معاً مسموح وشائع.

لماذا يقول commitlint إن subject may not be empty؟

عادةً لأن العنوان لا يطابق type: description تماماً، فلا يجد commitlint نوعاً ولا وصفاً. من الأسباب الشائعة غياب المسافة بعد النقطتين، أو وجود مسافة قبلهما، أو نوع بحرف كبير أو غير معروف، أو عدم وجود نوع أصلاً. الصق الرسالة هنا لترى أي جزء قُرئ خطأً.

هل يمكن أن يبدأ الوصف بحرف كبير؟

ليس مع config-conventional: فقاعدته subject-case ترفض الأوصاف المكتوبة بـ sentence case أو start case أو pascal case أو upper case، لذا يفشل Add login وينجح add login. يُتجاهل النص الموضوع بين علامات backtick أو علامات الاقتباس في هذه القاعدة، لذا لا مشكلة في اسم مثل `Button` في البداية. الفرق التي تريد الأحرف الكبيرة تغيّر القاعدة في إعداداتها الخاصة.

هل يفحص commitlint الـ merge commits؟

لا. افتراضياً يتخطى commitlint الـ merge commits، وعمليات revert التي يكتبها git، وcommits من نوع fixup! وsquash!، والعناوين التي ليست سوى رقم إصدار مثل 1.2.3 أو chore(release): 1.2.3. تتخطى هذه الصفحة الرسائل نفسها وتذكر ذلك، فيعطي الفحص هنا الإجابة نفسها التي يعطيها الـ hook.

المصادر

  • Conventional Commits 1.0.0 specificationMessage structure, the ! marker, BREAKING CHANGE footers and the mapping to Semantic Versioning
  • commitlint, @commitlint/config-conventional (GitHub)The twelve rules, their levels, the type list and the 100-character limits
  • commitlint rules referenceWhat each rule checks, such as subject-case and footer-leading-blank

آخر تحقق في 16 أكتوبر 2026.

تتغير المعدلات والقواعد؛ راجع المصدر قبل الاعتماد على أي رقم.

هل ما زلت عالقًا؟ اسأل عن مدقق Conventional Commits ويمكن لأي شخص يعرف الإجابة أن يجيب. لا حاجة إلى حساب.

أدوات ذات صلة

جميع أدوات المطورين
مختبر التعبيرات النمطيةاختبر التعبيرات النمطية في JavaScript مع تمييز مباشر وشرح بلغة واضحةمقارنة النصوصقارن نصّين جنبًا إلى جنب وشاهد كل سطر أُضيف أو حُذفمقارنة JSONقارن مستندين بصيغة JSON واعرض كل قيمة أُضيفت أو حُذفت أو تغيّرتمعاينة Open Graphالصق صفحة وشاهد بطاقة المشاركة على Facebook وLinkedIn وX وWhatsApp وSlackكثافة الكلمات المفتاحية وسهولة القراءةعدد الكلمات والعبارات وكثافتها ووقت القراءة ودرجة سهولة القراءة Fleschرموز حالة HTTPكل رموز حالة HTTP، ومعناها، ومتى تُرسل، والمواصفة RFC التي جاءت منهامحلل وكيل المستخدماقرأ سلسلة وكيل المستخدم: المتصفح والمحرك ونظام التشغيل ونوع الجهاز وهل هو روبوتمختبر JSONPathشغّل استعلامات JSONPath وفق RFC 9535 على JSON ملصوق وشاهد كل تطابق مظلّلًا
هل كانت هذه الأداة مفيدة؟
Omnikit

مهام صغيرة تُنجز في متصفحك. مجانية وسريعة وخاصة. لا تُرفع الملفات أبدًا.

الملفات

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

المطورون

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

المال

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
الأدلةالأسئلةمن نحنكيف نتحققمكتبة القوانين (تجريبية)الخصوصيةالشروطالإفصاحاتصل بناMore: Exam practice (UGC NET Paper 1)يعمل في متصفحك. لا يُرفع أي شيء. © 2026 Omnikit (theomnikit.com)