GIT HOOKS · دليل لغير المبرمجين

لا تخلّي وكيلك يحفظ
كود ما تأكّد منه.

دليل بسيط لغير المبرمجين: كيف تستخدم Git Hooks وتسوّي بوّابة فحص — ما يُحفظ أي تغيير إلا بعد ما تنجح كل الاختبارات.

يلا نبدأ خطوة خطوة
GUARDRAILS FOR AI · 2026
WATHBA.SA

وكيلك سريع… لكن من يضمن إنه ما يجيب فيك العيد؟

تطلب ميزة جديدة، فيكتب الوكيل (وكيل الذكاء الاصطناعي) الكود ويحفظه (commit) في ثواني. مرّة يشتغل، ومرّة يخرّب اللي كان شغّال — وما تدري إلا بعد ما يفوت الوقت.

نبي حارس يوقف قبل الحفظ، مو بعده.

terminal — بدون حارس
$ git commit -m "ميزة جديدة" # انحفظ التغيير على طول، بدون أي فحص [main 9f2c1a3] ميزة جديدة ✕ التطبيق وقف عن الشغل عند الناس

ثلاث محطات لين تبني بوّابتك.

بنبدأ من الصفر — ما يحتاج خبرة برمجة من قبل.

01
وش هو Git؟
ووش الفرق بينه وبين GitHub.
02
وش هي Git Hooks؟
الأوامر التلقائية اللي تسوّي الحارس.
03
كيف تبني البوّابة؟
ثلاث خطوات تطلبها من وكيلك.
01 / 03 · What is Gitوش هو Git
قبل ما نبني الحارس، نفهم الأداة اللي يقوم عليها كل شي: Git.
آلة الزمن
section · one

Git يشبه آلة زمن لمشروعك.

كل ما تحفظ، ياخذ Git «صورة» كاملة لمشروعك في تلك اللحظة. الصور تتجمّع وتصير تاريخ تقدر ترجع له.

يسجّل كل تغيير
مين غيّر، وش غيّر، ومتى، وليه.
يرجّعك بالزمن
ارجع لأي نسخة قديمة في ثواني.
يشتغل على جهازك
بدون إنترنت — النسخة كاملة عندك.

هل Git هو GitHub؟ لا أبد.

— المنصّة
GitHub
01موقع على الإنترنت.
02عشان تشارك مشروعك وتاخذ منه نسخة احتياطية.
03مبني فوق Git — مو بديل عنه.

الـcommit هو نقطة حفظ.

مثل «احفظ اللعبة» قبل مرحلة صعبة: كل commit صورة تقدر ترجع لها متى ما بغيت.

وهنا بيت القصيد: ماذا لو نفحص الكود قبل كل صورة؟

save
كل commit = صورة محفوظة. الفكرة كلها: ما نسمح بصورة إلا إذا المشروع سليم.
snapshothistorycheckpoint
02 / 03 · Git Hooksالخطّافات
أوامر تشتغل تلقائي عند لحظات مهمة — أهمها لحظة قبل الحفظ.
الخطّافات
section · two

Git Hooks = أوامر تشتغل تلقائي.

«الخطّاف» (hook) أمر يشغّله Git عنك عند حدث معيّن — بدون ما تتذكّره كل مرّة.

و«الاختبار» (test) فحص صغير يشتغل تلقائي ويتأكّد ان كل ميزة في مشروعك باقي شغّالة.

pre-commit · الأهم
يشتغل قبل الحفظ على طول — هنا نحط بوّابة الاختبارات.
pre-push
يشتغل قبل الرفع للمستودع البعيد (مثل GitHub).
تلقائي بالكامل
يشتغل كل مرّة بدون ما تتذكّره — لا أنت ولا وكيلك.

البوّابة: ما في حفظ قبل نجاح الاختبارات.

الوكيل الذكي
AI agent
pre-commit
بوّابة الاختبارات
tests/login
tests/payment
tests/build
انحفظ بأمان
committed
يحاول يحفظالاختبارات تشتغلنجحت؟ ينحفظ · طاحت؟ ينمنع
03 / 03 · Setupكيف نطبّقها
ثلاث خطوات عملية — اطلبها من وكيلك، هذي لغة يفهمها زين.
خطوة خطوة
section · three

ابنِ البوّابة في ثلاث خطوات.

انسخ الخطوات لوكيلك زي ما هي — بينفّذها عنك. وإذا ما عندك اختبارات، اطلب منه يكتب اختبارات لأهم مزاياك أول.

«حط أمر اختباراتي في خطّاف pre-commit عشان يشتغل قبل كل commit
01
افتح ملف الخطّاف
.git/hooks/pre-commit — موجود في كل مستودع git، بأي لغة.
02
حط فيه أمر اختبارك
أي أمر: pytest أو go test أو npm test… المهم يرجّع خطأ إذا طاح.
03
خلّه قابل للتنفيذ
chmod +x .git/hooks/pre-commit — وخلاص، صار عندك حارس.

كذا تشتغل البوّابة على أرض الواقع.

أي محاولة تحفظ كود خربان تتمنّع تلقائي. الوكيل يصلّح، وبعدها تنجح وتنحفظ — بدون ما تتدخّل.

terminal — مع الحارس
$ git commit -m "إصلاح" # pre-commit: تشغيل الاختبارات… ✕ 1 test failed — commit blocked # الوكيل يصلّح ويعيد المحاولة $ git commit -m "إصلاح" ✓ all tests passed — committed

بوّابة وحدة، وراحة بال على طول.

ما يتغيّر أسلوب شغلك مع الوكيل؛ اللي يتغيّر إن الكود الخربان ما عاد يعدّي.

بدون بوّابة
شغل مكشوف
الكود الخربانيتسلّل
اكتشاف العطلمتأخّر
الإصلاحيدوي
مع البوّابة
شغل محروس
الكود الخربانينمنع
اكتشاف العطلفوري
الإصلاحقبل الحفظ
start nowابدأ الحين
قول لوكيلك: «حط خطّاف pre-commit يشغّل الاختبارات قبل كل commit». وخلّ الاختبارات تحرس كودك.
ابدأ الحين
wathba.sa
— 1.1 · الفكرة الأولى
03 / 03
WATHBA.SA
SPEAKER NOTES · شريحة 03
اسحب للتنقّل · swipe to navigate