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 الكامل بالعربي.