0Pricing
DevOps Bootcamp · درس

خطافات ما قبل الالتزام وما بعد الدمج

طبّق أمثلة عملية لخطافات ما قبل الالتزام لفحص التنسيق، وخطافات ما بعد الدمج لإرسال الإشعارات

خطافات ما قبل الالتزام وما بعد الدمج درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

مقدمة عملية إلى خطافات Git

في الدرس السابق، تعلمنا عن خطافات Git وأنواعها المختلفة. والآن لننتقل إلى الجانب العملي!

سنتعلم كيفية تطبيق خطافين قويين: pre-commit وpost-merge. يتيحان لك أتمتة عمليات التحقق قبل الإيداع والإجراءات بعد الدمج.

‏Pre-commit: بوابة الجودة

يُشغَّل خطاف pre-commit قبل عملية الإيداع، ولكن بعد استخدامك git add لتهيئة تغييراتك.

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

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

إعداد خطاف Pre-commit

لإنشاء خطاف pre-commit، يجب إنشاء ملف قابل للتنفيذ باسم pre-commit داخل مجلد .git/hooks/ في مشروعك.

يوفر Git خطافات نموذجية بامتداد .sample. أزل هذا الامتداد وأضف البرنامج النصي المخصص لك.

تذكّر جعل الملف قابلًا للتنفيذ باستخدام: chmod +x .git/hooks/pre-commit

مثال: منع عمليات إيداع تتضمن «TODO»

لننشئ خطاف pre-commit بسيطًا يمنعك من إيداع الملفات التي لا تزال تحتوي على الكلمة "TODO". هذه ممارسة شائعة لضمان عدم تسرب المهام غير المكتملة إلى قاعدة التعليمات البرمجية.

سيفحص البرنامج النصي جميع الملفات المُهيّأة بحثًا عن هذه الكلمة المفتاحية. وإذا عثر عليها، فسيوقف عملية الإيداع.

خطاف Pre-commit: لا توجد TODOs!

إليك برنامجًا نصيًا بسيطًا لـ shell لملف .git/hooks/pre-commit. وهو يفحص ملفات .txt المُهيّأة بحثًا عن الكلمة "TODO".

الخطوات:

  1. أنشئ .git/hooks/pre-commit
  2. الصق هذا الرمز
  3. شغّل chmod +x .git/hooks/pre-commit
#!/bin/sh

# Check staged .txt files for "TODO"
for file in $(git diff --cached --name-only --diff-filter=ACM | grep '\.txt$'); do
  if grep -q "TODO" "$file"; then
    echo "ERROR: Found 'TODO' in staged file: $file"
    echo "Please remove TODOs before committing."
    exit 1
  fi
done

exit 0

اختبار خطاف Pre-commit

لاختبار هذا الخطاف، أنشئ أولًا ملفًا (مثل test.txt) وأضف إليه "TODO: Finish this". ثم حاول إيداعه:

git add test.txt
git commit -m "Add test file"

يجب أن تُلغى عملية الإيداع، وستظهر لك رسالة الخطأ الصادرة عن الخطاف. أزل "TODO" من test.txt، وستنجح عملية الإيداع!

‏Post-merge: أتمتة ما بعد الدمج

يُشغَّل خطاف post-merge تلقائيًا بعد اكتمال الأمر git merge بنجاح.

  • يفيد في مهام التكامل التي ينبغي تنفيذها بعد دمج التعليمات البرمجية.
  • تشمل الأمثلة إخطار أعضاء الفريق، وتحديث تبعيات المشروع (مثل npm install)، أو تشغيل برنامج نصي للبناء.
  • بخلاف pre-commit، لا يؤثر هذا الخطاف في نتيجة الدمج.

إنه طريقة رائعة لأتمتة العمليات اللاحقة للدمج.

إعداد خطاف Post-merge

على غرار pre-commit، تنشئ ملفًا باسم post-merge داخل مجلد .git/hooks/.

وتأكد مجددًا من أن الملف قابل للتنفيذ:

chmod +x .git/hooks/post-merge

سيُشغَّل هذا البرنامج النصي بعد ذلك في كل مرة تكتمل فيها عملية دمج في مستودعك.

مثال: تنبيه اكتمال الدمج

لننشئ خطاف post-merge يطبع ببساطة رسالة في وحدة التحكم لتأكيد حدوث عملية دمج للتو. في سيناريو واقعي، يمكن لهذا الخطاف تشغيل مسار CI/CD أو إرسال إشعار إلى تطبيق محادثة.

خطاف Post-merge: إشعار

إليك برنامجًا نصيًا بسيطًا لـ shell لملف .git/hooks/post-merge. وهو يطبع رسالة تأكيد.

الخطوات:

  1. أنشئ .git/hooks/post-merge
  2. الصق هذا الرمز
  3. شغّل chmod +x .git/hooks/post-merge
#!/bin/sh

# This hook runs after a merge operation.
echo "--- Post-merge hook triggered ---"
echo "A merge has just completed in your repository."
echo "You might want to run 'npm install' or 'bundle install' now."
echo "---------------------------------"

exit 0

تحقق من الخطاف: Pre-commit مقابل Post-merge

أيّ من المهام التالية يُعالج عادةً باستخدام خطاف pre-commit؟

مراجعة: الخطافات قيد التنفيذ

أحسنت! لقد تعلمت في هذا الدرس كيفية تطبيق خطافات Git العملية.

  • تعمل خطافات Pre-commit بوصفها بوابة للجودة، إذ تُجري عمليات تحقق مثل الفحص أو الاختبار قبل الإيداع.
  • تؤتمت خطافات Post-merge الإجراءات بعد الدمج، مثل الإشعارات أو تحديث التبعيات.

تُعد هذه الخطافات أدوات قوية لفرض المعايير وأتمتة سير العمل في مستودع Git الخاص بك. واصل استكشاف أنواع الخطافات الأخرى لتخصيص تجربة Git بدرجة أكبر!

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

هل درس «خطافات ما قبل الالتزام وما بعد الدمج» مجاني؟

نعم — نص درس «خطافات ما قبل الالتزام وما بعد الدمج» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ماذا ستتعلم في «خطافات ما قبل الالتزام وما بعد الدمج»؟

طبّق أمثلة عملية لخطافات ما قبل الالتزام لفحص التنسيق، وخطافات ما بعد الدمج لإرسال الإشعارات تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟

لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «خطافات ما قبل الالتزام وما بعد الدمج»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟

نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. فهم Git Hooks
  2. خطافات ما قبل الالتزام وما بعد الدمج
  3. تخصيص إعدادات Git
  4. مشاركة Hooks باستخدام Husky
← العودة إلى DevOps Bootcamp