تخطَّ إلى المحتوى

hook.<name>.parallel

تشغيل الخطافات بالتوازي hook.<name>.parallel

منذ Git 2.55، الخطافات المعرَّفة عبر الإعدادات (hook.<اسم>) يمكن تشغيلها بالتوازي بدل التتابع، لتسريع فحوصات pre-push ونحوها.

نظام الخطافات الأحدث المبني على git config (وليس ملفات .git/hooks/ التقليدية فقط) يسمح بتعريف أكثر من خطاف لنفس الحدث، كلّ منها باسم مستعار. مع ضبط hook.<اسم>.parallel = true وhook.jobs (أو hook.<حدث>.jobs) بعدد أكبر من 1، تعمل الخطافات المؤهّلة في نفس الوقت بدل التسلسل. بعض الخطافات — مثل pre-commit وcommit-msg وprepare-commit-msg وpost-commit — تبقى تعمل تسلسليًا دائمًا لأنها تتعامل مع بيانات مشتركة لا يمكن توازيها بأمان، بغضّ النظر عن هذا الإعداد.

الصياغة

git config hook.<اسم>.parallel true
git config hook.jobs <عدد>

📄 مثال

# .git/config
[hook "lint"]
    command = ./scripts/lint.sh
    parallel = true
[hook "typecheck"]
    command = ./scripts/typecheck.sh
    parallel = true
[hook]
    jobs = 4

أهم الخيارات

الخيارالوظيفة
hook.<اسم>.parallelيسمح لخطاف معيّن بالعمل بالتوازي مع غيره لنفس الحدث؛ افتراضيًا false
hook.jobs / hook.<حدث>.jobsأقصى عدد خطافات تعمل معًا في نفس اللحظة؛ -1 يستخدم كل أنوية المعالج المتاحة

💡 نصائح عملية

  • لا تعتمد عليه لخطافات pre-commit أو commit-msg — تبقى تسلسلية دائمًا مهما ضبطت الإعداد

⚠️ أخطاء شائعة

  • افتراض أن كل الخطافات القديمة في .git/hooks/ تستفيد من هذا تلقائيًا — الميزة خاصة بنظام الخطافات المعرَّف عبر git config فقط

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار GIT الكامل بالعربي.