أهم 50 أسئلة وأجوبة لمقابلة GIT (2026)

هل تستعد لمقابلة GIT؟ حان الوقت لاستكشاف الأسئلة الأساسية التي تختبر خبرتك في إدارة الإصدارات. أسئلة مقابلة GIT يساعد في الكشف عن عمق حل المشكلات، وعادات التعاون، وكفاءة إدارة سير العمل.

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

استنادًا إلى رؤى من أكثر من 75 متخصصًا، بما في ذلك القادة الفنيون والمديرون والمطورون، يعمل هذا الدليل على توحيد وجهات نظر مقابلات GIT المتميزة عبر الصناعات، مما يضمن المصداقية والدقة العملية والتغطية الشاملة لجميع مستويات الخبرة.

أسئلة وأجوبة مقابلة GIT

أفضل 50 سؤالاً وإجابة لمقابلة GIT

1) ما هو Git وكيف يختلف عن أنظمة التحكم في الإصدارات الأخرى؟

جيت هو نظام تحكم في الإصدارات موزع مصمم لـ tracيُتيح نظام Git إمكانية إجراء تغييرات على شفرة المصدر أثناء تطوير البرمجيات. وعلى عكس الأنظمة المركزية مثل SVN أو CVS، يسمح Git لكل مطور بالحصول على نسخة كاملة من المستودع، بما في ذلك سجل التغييرات الكامل. يُعزز هذا النموذج اللامركزي السرعة والمرونة والموثوقية.

على سبيل المثال: عندما تقوم باستنساخ مستودع Git، يمكنك العمل دون اتصال بالإنترنت والالتزام محليًا، على عكس SVN حيث يلزم الاتصال بالإنترنت لكل التزام.

عامل بوابة SVN
معمار وزعت مركزية
سرعة أسرع أبطأ
العمل دون اتصال عائلات غير معتمد
المتفرعة خفيف الوزن ثقيل وبطيء

👉 تحميل ملف PDF مجاني: أسئلة وأجوبة مقابلة GIT


2) شرح سير عمل Git ودورة حياة الملف.

تمثل دورة حياة ملف Git كيفية انتقال الملف عبر حالات مختلفة في المستودع.

يمكن أن توجد الملفات في Git في إحدى الحالات الأساسية الأربعة: Untracالطبوع, تم التعديل, نظمواو ملتزم.

  1. Untracكيد: الملفات التي تم إنشاؤها حديثًا لم تتم إضافتها إلى Git بعد.
  2. تم التعديل: الملفات التي تم تحريرها منذ آخر التزام.
  3. تم تنظيمه: الملفات المضافة باستخدام git add ومستعد للالتزام.
  4. ملتزم: الملفات المحفوظة بشكل دائم في المستودع مع git commit.

على سبيل المثال: يقوم المطور بإنشاء ملف جديد → تشغيل git add ثم يقوم بتثبيته. تُكمل هذه العملية دورة حياة الملف من البداية.tracked to committed.


3) كيف تعمل عملية التفرع والدمج في Git؟

يتيح التفرّع لمطورين متعددين العمل على ميزات منفصلة في آنٍ واحد دون التأثير على قاعدة الكود الرئيسية. يُمثّل كل فرع خط تطوير مستقل.

يجمع الدمج التغييرات من فرع إلى آخر، وعادةً ما يتم دمج فروع الميزات مرة أخرى في الفرع الرئيسي.

على سبيل المثال: إذا قمت بإنشاء ملف feature/login الفرع، والعمل عليه بشكل مستقل، ثم دمجه مع main، يمكنك تعزيز ميزتك الجديدة بأمان.

أمر الهدف
git branch feature إنشاء فرع جديد
git checkout feature التبديل إلى الفرع
git merge feature يندمج مع الفرع الرئيسي

4) ما هي أنواع كائنات Git المختلفة؟

يخزّن Git البيانات ككائنات في قاعدة بياناته الداخلية. الأنواع الرئيسية للكائنات هي:

  1. كتلة: تخزين بيانات الملف.
  2. شجرة: يمثل الدلائل وهياكل الملفات.
  3. ارتكب: يسجل التغييرات مع البيانات الوصفية مثل المؤلف والتاريخ والالتزام الرئيسي.
  4. افضل يشير إلى نقطة محددة في التاريخ، وغالبًا ما يتم استخدامه للإصدارات.

تعمل هذه الكائنات على إنشاء سلامة Git وعدم قابليته للتغيير، مما يضمن إمكانية التعرف على كل التزام بشكل فريد عبر تجزئة SHA-1.


5) ما هو الفرق بين Git fetch و Git pull؟

git fetch يقوم بتنزيل التغييرات من مستودع بعيد، لكنه لا يدمجها تلقائيًا. يقوم بتحديث النسخة المحلية البعيدة-tracفروع الملك.

git pull يقوم بتنفيذ كل من الجلب والدمج في خطوة واحدة.

أمر الوصف الحلول المقترحة
git fetch تنزيل التغييرات دون دمج عندما تريد فحص التحديثات قبل الدمج
git pull تنزيل التغييرات ودمجها تلقائيًا عندما تريد المزامنة الفورية

على سبيل المثال: استعمل git fetch عند التعاون لمراجعة تغييرات الآخرين قبل الدمج.


6) كيف يضمن Git سلامة البيانات؟

يضمن Git سلامة البيانات من خلال تجزئة SHA-1يتم تعريف كل التزام وشجرة وكائن برمز تجزئة فريد من 40 حرفًا. هذا يضمن أن أي تغيير ولو بسيط في البت يُغيّر الرمز، مما يمنع التلف أو التلاعب.

بالإضافة إلى ذلك، يستخدم Git الرسم البياني غير الدوري الموجه (DAG) بنيةٌ تُشير فيها الالتزامات إلى التزاماتها الأصلية، مما يضمن اتساقًا و tracتاريخ قابل للتطبيق.

على سبيل المثال: إذا تغير محتوى الملف، تتغير قيمة SHA-1 الخاصة به، حتى يتعرف عليه Git كإصدار جديد على الفور.


7) اشرح Git Rebase وكيف يختلف عن Git Merge.

يبلغ قطر كلاً من git merge و git rebase دمج التغييرات من فرع إلى آخر، ولكنها تختلف في النهج.

  • دمج: ينشئ التزام دمج جديد يجمع السجلات.
  • إعادة التأسيس: ينقل أو يعيد تشغيل الالتزامات من فرع إلى آخر، مما يؤدي إلى إنشاء تاريخ خطي.
عامل دمج ريباسي
سجل الالتزام غير خطي خطي
تم إنشاء التزام جديد نعم لا
الحلول المقترحة يحافظ على التاريخ تاريخ النظافة

على سبيل المثال: استعمل git rebase للحفاظ على سجل نظيف للمشروع، في حين git merge من الأفضل للفروع العامة المشتركة.


8) ما هي خطافات Git وما هي فوائدها؟

خطافات Git هي نصوص برمجية مخصصة تُفعّل عند حدوث أحداث Git محددة، مثل عمليات الالتزام أو الدمج أو الدفع. تساعد هذه الخطافات على تطبيق معايير الترميز وأتمتة سير العمل.

أنواع الخطافات:

  • خطافات جانب العميل: تشغيل العمليات المحلية (على سبيل المثال، الالتزام المسبق).
  • خطافات جانب الخادم: تشغيل إجراءات المستودع البعيد (على سبيل المثال، الاستلام المسبق).

الفوائد:

  • منع الالتزامات التي تحتوي على أخطاء التنسيق.
  • أتمتة عملية التحقق من التعليمات البرمجية أو اختبارها.
  • ضمان سير العمل المتسق بين الفرق.

على سبيل المثال: A pre-commit يمكن للخطاف رفض الالتزامات إذا فشلت اختبارات الوحدة.


9) ما هي مزايا وعيوب استخدام Git؟

البعد المزايا عيوب
هاملت سريع وفعال للتفرع/الدمج قد تكون معقدة بالنسبة للمبتدئين
التعاون: تمكين التطوير الموزع صراعات الدمج المحتملة
المرونة يعمل حاليا يتطلب الإعداد والتعلم
التخزين يتعامل مع المشاريع الكبيرة قد ينمو التخزين بسرعة

بشكل عام، فإن نموذج Git الموزع وسلامة البيانات والمرونة تجعله المعيار الصناعي، على الرغم من منحنى التعلم للمطورين الجدد.


10) كيف يمكنك حل تعارضات الدمج في Git؟

تحدث تعارضات الدمج عندما لا يتمكن Git من التوفيق تلقائيًا بين التغييرات بين الفروع.

خطوات الحل:

  1. تحديد الملفات المتضاربة مع git status.
  2. افتح الملف وحدد علامات التعارض (<<<<<<<, =======, >>>>>>>).
  3. قم بتحرير الملف يدويًا لاختيار التغييرات أو دمجها.
  4. تنظيم الملف باستخدام git add.
  5. قم بتنفيذ الدمج المُحل مع git commit.

على سبيل المثال: عندما يقوم مطوران بتحرير نفس السطر في ملف على فروع مختلفة، يثير Git تعارضًا أثناء الدمج، مما يتطلب حلًا يدويًا.


11) ما هو الفرق بين git reset و git revert و git checkout؟

تعمل هذه الأوامر الثلاثة على تعديل سجل Git بشكل مختلف وتخدم أغراضًا مميزة.

أمر الوظيفة تأثير البيانات الحلول المقترحة
git reset نقل مؤشر HEAD للخلف إلى التزام محدد سجل التغييرات الملتزمة التراجع عن الالتزامات محليًا
git revert إنشاء التزام جديد يلغي التغييرات السابقة يحافظ على تاريخ الالتزام التراجع بأمان عن الالتزامات في الفروع المشتركة
git checkout تبديل الفروع أو استعادة الملفات لا يؤثر على تاريخ الالتزام التنقل بين الفروع أو تجاهل التغييرات المحلية

على سبيل المثال: إذا ارتكبت خطأً بيانات حساسة، فاستخدم git revert للتراجع عنه بأمان دون تغيير سجل الالتزام.

استعمل git reset --hard فقط للتصحيحات المحلية قبل الدفع.


12) اشرح أنواع إعادة التعيين في Git.

يوفر Git ثلاثة أنواع رئيسية من عمليات إعادة التعيين استنادًا إلى مدى رغبتك في التراجع عن التغييرات.

النوع أمر سلوك
ناعم git reset --soft <commit> يحرك الرأس ولكنه يبقي الفهرس ودليل العمل سليمين
خليط git reset --mixed <commit> يحرك الرأس ويعيد تعيين الفهرس؛ وتظل التغييرات في دليل العمل
الثابت git reset --hard <commit> إعادة تعيين HEAD والفهرس ودليل العمل بالكامل

على سبيل المثال: إذا قمت بإجراء التغييرات قبل الأوان، git reset --soft HEAD~1 يسمح لك بإعادة الالتزام بعد التعديل.


13) ما هو Git Stash ومتى يجب عليك استخدامه؟

git stash يخزن التغييرات غير الملتزمة مؤقتًا، مما يسمح لك بالتبديل بين الفروع دون فقدان العمل.

يعد هذا مفيدًا بشكل خاص أثناء تعدد المهام أو عندما تحتاج إلى مراجعة فرع آخر بشكل عاجل.

الأوامر المشتركة:

  • git stash:يحفظ التعديلات المحلية الخاصة بك.
  • git stash pop:استعادة التغييرات المخزنة.
  • git stash list: يعرض جميع المخازن المحفوظة.

على سبيل المثال: إذا كنت في منتصف الطريق نحو تنفيذ ميزة ما وظهرت مشكلة في الإنتاج، فقم بتخزين التغييرات وإصلاح المشكلة ثم إعادة تطبيق العمل المخزن.


14) كيف يتعامل Git مع المستودعات البعيدة؟

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

الأوامر عن بعد الشائعة:

أمر الوصف
git remote add origin <url> ربط المستودع المحلي بجهاز بعيد
git push يرسل الالتزامات إلى المستودع البعيد
git pull استرداد التغييرات ودمجها
git fetch يسترد التغييرات ولكنه لا يدمجها

على سبيل المثال: يقوم المطورون عادةً باستنساخ مستودع بعيد من منصات مثل GitHub أو GitLab للمساهمة في المشاريع المشتركة.


15) ما هي علامات Git ولماذا هي مهمة؟

العلامات هي مؤشرات لالتزامات محددة، وغالبًا ما تستخدم لتمييز نقاط الإصدار (على سبيل المثال، v1.0, v2.1).

إنها توفر الاستقرار من خلال الإشارة إلى إصدارات غير قابلة للتغيير من قاعدة التعليمات البرمجية.

أنواع العلامات:

  1. علامات خفيفة الوزن: مراجع الالتزام البسيطة.
  2. العلامات الموضحة: تخزين البيانات الوصفية (المؤلف، الرسالة، التاريخ).
أمر الهدف
git tag v1.0 إنشاء علامة خفيفة الوزن
git tag -a v2.0 -m "Release 2.0" إنشاء علامة توضيحية
git push origin --tags يدفع جميع العلامات إلى جهاز التحكم عن بعد

على سبيل المثال: تستخدم فرق الإصدار علامات توضيحية لتعبئة ونشر إصدارات المنتج المستقرة.


16) ما هو Git Cherry-Pick وما هي فائدته؟

git cherry-pick يسمح بالتكامل الانتقائي للالتزامات المحددة من فرع إلى آخر.

يعد هذا مفيدًا عندما تريد تطبيق إصلاح خطأ أو ميزة معينة دون دمج الفرع بأكمله.

على سبيل المثال: يمكنك تطبيق الإصلاح من feature/bugfix إلى main باستخدام:

git cherry-pick <commit-hash>

الفوائد:

  • التحكم الدقيق في تكامل الالتزام.
  • يتجنب دمج التعليمات البرمجية غير الضرورية.
  • يحافظ على تاريخ أنظف في الفروع الهامة.

17) ما هو Git Squash وما هي فوائده؟

يجمع Squashing في Git عمليات التزام متعددة في عملية التزام واحدة، مما يؤدي إلى إنشاء سجل التزامات مبسط وأنظف.

الأمر:

git rebase -i HEAD~3

ثم اختر squash خيار للالتزامات التي تريد دمجها.

الفوائد:

  • إنشاء تاريخ موجز.
  • يجعل طلبات السحب أسهل للمراجعة.
  • يقلل من الفوضى الناتجة عن الالتزامات البسيطة.

على سبيل المثال: قبل دمج فرع ميزة، يقوم المطورون عادةً بدمج كل الالتزامات الصغيرة في التزام واحد ذي معنى.


18) كيف يمكنك التراجع عن التزام تم دفعه في Git؟

بمجرد دفع الالتزام إلى مستودع بعيد، لا يمكن حذفه بأمان، ولكن يمكن إعادته باستخدام:

git revert <commit-hash>
git push origin main

الفرق بين إعادة الضبط و Revert:

عامل إعادة تعيين RevERT
تاريخنا يعيد كتابة التاريخ يحافظ على التاريخ
سلامة غير آمن للمستودعات المشتركة آمنة للفروع العامة
الأستعمال التراجع المحلي التراجع عن بعد

على سبيل المثال: إذا كان هناك التزام خاطئ موجود بالفعل على GitHub، فاستخدم git revert بدلا من git reset للحفاظ على تاريخ مشترك متسق.


19) ما هو الفرق بين Git و GitHub؟

Git هو ملف أداة التحكم في الإصدارفي حين أن GitHub هو منصة سحابة القائم لاستضافة مستودعات Git.

البعد بوابة GitHub جيثب:
الطبيعة أداة سطر الأوامر الخدمة المستندة إلى الويب
الوظيفة Tracتغييرات كود ks محليًا تمكين التعاون عن بعد
متطلبات الإنترنت اختياري مطلوب:
امتلاك المصدر المفتوح (من لينوس) Tor(valds) مملوكة من قبل Microsoft

على سبيل المثال: يستخدم المطور Git لإدارة إصدارات التعليمات البرمجية المصدرية محليًا وGitHub لمشاركة التعليمات البرمجية ومراجعتها مع زملائه في الفريق.


20) ما هي استراتيجيات الدمج المختلفة في Git؟

يوفر Git استراتيجيات دمج مختلفة اعتمادًا على كيفية رغبتك في دمج التغييرات.

الإستراتيجيات الوصف الحلول المقترحة
العودية افتراضيًا؛ دمج فرعين الدمج القياسي
تحمل يحافظ على تغييرات الفرع الحالي تجاهل التغييرات الواردة
لهم يحتفظ بتغييرات الفرع الوارد تجاوز التغييرات المحلية
أخطبوط دمج فروع متعددة في وقت واحد فروع التكامل

على سبيل المثال: أثناء عمليات التكامل المعقدة، قد يستخدم المطورون recursive استراتيجية الدمج القياسية أو ours لإعطاء الأولوية للتغييرات المحلية.


21) ما هو الرأس المنفصل في Git وكيف يمكنك إصلاحه؟

A رأس منفصل يحدث عندما HEAD لا يشير المؤشر إلى فرع، بل إلى التزام محدد. يحدث هذا عند التحقق من التزام سابق مباشرةً باستخدام:

git checkout <commit-hash>

في هذه الحالة، لا يتم ربط أي عمليات التزام جديدة بفرع ويمكن فقدها إذا لم يتم الرجوع إليها بشكل صحيح.

كيفية إصلاح:

  1. إنشاء فرع جديد من الحالة المنفصلة:
    git checkout -b temp-branch
  2. ثم قم بالالتزام أو الدمج كالمعتاد.

على سبيل المثال: عند اختبار إصدار أقدم من الكود، قد تُدخل رأسًا منفصلًا. أنشئ دائمًا فرعًا للاحتفاظ بالتغييرات.


22) ما هو الغرض من git reflog ومتى يجب عليك استخدامه؟

git reflog هو أمر قوي tracجميع حركات ks HEAD حتى تلك التي لا تظهر في سجل الفرع المرئي. يعمل هذا كشبكة أمان لاستعادة الالتزامات المفقودة.

الاستخدام:

git reflog
git checkout <commit-hash>

على سبيل المثال:

إذا قمت بالركض عن طريق الخطأ git reset --hard وتفقد الالتزامات الأخيرة، git reflog يسمح لك بالعثور عليها واستعادتها.

الفوائد:

  • يستعيد العمل المفقود بعد إعادة التأسيس أو إعادة التعيين بشكل خاطئ.
  • يوفر سجل تنقل مفصل للالتزام.
  • تعزيز السلامة في سير العمل المعقدة.

23) اشرح وحدات Git الفرعية وحالات استخدامها.

A وحدة بوابة يسمح لك بتضمين مستودع Git كمجلد فرعي داخل مستودع آخر. يُستخدم هذا عند إدارة المشاريع التي تعتمد على مستودعات أخرى.

الأوامر المشتركة:

git submodule add <repo-url>
git submodule update --init

على سبيل المثال: قد يتضمن تطبيق الويب وحدة مصادقة مشتركة كوحدة فرعية لـ Git عبر مشاريع متعددة.

المزايا عيوب
Promoإعادة استخدام كود tes يمكن أن يؤدي إلى تعقيد خطوط أنابيب CI/CD
يحافظ على تاريخ مستقل يتطلب التحديثات اليدوية
ضمان اتساق الإصدار منحنى التعلم العالي

24) ما هي مهام سير العمل في Git وما هي أنواعها المختلفة؟

تُحدد سير عمل Git النهج المُهيكل الذي تستخدمه الفرق للتعاون باستخدام Git. أشهر أنواع سير العمل هي:

سير العمل الوصف الحلول المقترحة
تدفق بوابة يستخدم فروع الميزة والتطوير والإصدار مشاريع واسعة النطاق
تدفق جيثب تدفق مبسط باستخدام الفروع الرئيسية والمميزة الانتشار المستمر
تدفق جيت لاب يجمع بين Git Flow وتكامل CI/CD المشاريع الموجهة نحو DevOps
قائم على الجذع المطورون ملتزمون بفرع مشترك واحد فرق تسليم سريعة ورشيقة

على سبيل المثال: الشركات الناشئة تعتمد في كثير من الأحيان قائم على الجذع سير العمل من أجل السرعة، في حين تفضل الشركات تدفق بوابة للإصدارات الخاضعة للرقابة.


25) ما هو Git Bisect وكيف يساعد في تصحيح الأخطاء؟

git bisect هي أداة تصحيح أخطاء قوية تستخدم البحث الثنائي لتحديد الالتزام الذي تسبب في حدوث خطأ.

مثال لسير العمل:

  1. بداية التقسيم: git bisect start
  2. وضع علامة على الالتزام الحالي على أنه سيئ: git bisect bad
  3. قم بوضع علامة على آخر التزام جيد معروف: git bisect good <commit>
  4. يقوم Git بالتحقق من نقطة المنتصف تلقائيًا.
  5. قم بالاختبار واستمر حتى يتم العثور على الخطأ.

الفوائد:

  • تسريع إصلاح الأخطاء tracالعمل في قواعد بيانات برمجية كبيرة.
  • يقلل من التحقق اليدوي للالتزام.
  • مثالي لاختبار الانحدار CI/CD.

26) ما هو الفرق بين تعارض دمج Git وتعارض إعادة القاعدة؟

يحدث كلا الأمرين عندما لا يتمكن Git من التوفيق تلقائيًا بين الاختلافات في التعليمات البرمجية، ولكنهما يحدثان في سياقات مختلفة.

النوع عندما يحدث ذلك دقة الشاشة
دمج الصراع خلال git merge بين الفروع حل في الفرع المستهدف
تعارض إعادة التأسيس خلال git rebase أثناء إعادة تشغيل الالتزامات قم بالحل أثناء إعادة التأسيس، ثم استمر مع git rebase --continue

على سبيل المثال: إذا تم تحرير نفس السطر بشكل مختلف في فرعين، يحدث تعارض في الدمج؛ أثناء إعادة التأسيس، تؤدي التغييرات المماثلة أيضًا إلى إثارة تعارضات في إعادة التأسيس.


27) كيف يمكن دمج Git في خطوط أنابيب CI/CD؟

يشكل Git الأساس لتدفقات عمل CI/CD الحديثة من خلال تشغيل العمليات الآلية عند كل التزام أو طلب سحب.

مثال التكامل:

  • دفع الالتزام → يُشغّل مسار التكامل المستمر (عبر Jenkins(أو GitHub Actions أو GitLab CI).
  • بناء واختبار → الاختبارات الآلية تتحقق من صحة الالتزام.
  • نشر → يتم دفع التغييرات إلى المرحلة التجريبية أو الإنتاج.

الفوائد:

  • ضمان نشر متسق.
  • تمكين دورات ردود الفعل السريعة.
  • يقلل من الخطأ البشري في الإصدارات.

على سبيل المثال: يمكن لـ GitHub Actions اختبار المشروع ونشره تلقائيًا عند دفع التغييرات إلى main فرع شجرة.


28) ما هو الفرق بين git clean و git reset؟

أمر الهدف مجال مثال
git clean يزيل غيرtracملفات ked دليل العمل git clean -f -d
git reset تحريك مؤشر الرأس الالتزامات، والمؤشر، وشجرة العمل git reset --hard HEAD~1

على سبيل المثال: إذا كانت مساحة العمل الخاصة بك تحتوي على ملفات مؤقتة أو تم إنشاؤها، فلا tracked بواسطة Git، استخدم git cleanإذا كنت بحاجة إلى التراجع عن الالتزامات، استخدم git reset.

تلميح: قم بالمراجعة دائما مع git clean -n قبل التنفيذ لتجنب الحذف غير المقصود.


29) ما هو Git Reflog مقابل Git Log؟

على الرغم من أن كلاهما يعرضان تاريخ الالتزام، إلا أنهما يخدمان أغراضًا مختلفة.

أمر Tracks يتضمن الالتزامات المحذوفة الحلول المقترحة
git log سجل الالتزام المرئي لا Revعرض تقدم المشروع
git reflog جميع حركات الرأس نعم استعادة الالتزامات المفقودة

على سبيل المثال: بعد حذف فرع عن طريق الخطأ، يمكنك استخدام git reflog لتحديد موقع آخر التزام له واستعادته، والذي لن يظهر في git log.


30) ما هي بعض أفضل الممارسات لاستخدام Git بشكل فعال في الفرق الكبيرة؟

  1. استخدم اتفاقيات تسمية الفروع: اتبع نمطًا مثل feature/login-ui or bugfix/payment.
  2. الالتزام بشكل متكرر ولكن بشكل هادف: احرص على أن يركز كل التزام على تغيير منطقي واحد.
  3. كتابة Descriptرسائل الالتزام: استخدم صيغة الأمر، على سبيل المثال، "Fix user login validation."
  4. إعادة التأسيس قبل الدمج: يحافظ على سجل الالتزام نظيفًا.
  5. استخدم طلبات السحب لـ Revوجهات النظر: Promoالتعاون في الاختبارات وجودة الكود.
  6. إصدارات العلامة بشكل متسق: يساعد في التحكم في الإصدار والتراجع.
  7. أتمتة الاختبار عبر CI/CD: يضمن التكامل المستقر والإصدارات الأسرع.

على سبيل المثال: في تطوير المؤسسات، يمنع الاستخدام المنظم لـ Git التعارضات ويبسط إدارة الإصدارات.


31) ما هو Git Internals وكيف يقوم Git بتخزين البيانات؟

تشير مكونات Git الداخلية إلى البنية الأساسية منخفضة المستوى التي تُشغّل وظائف Git. يخزّن Git كل شيء (ملفات، مجلدات، عمليات التزام) كـ الأجسام في .git/objects الدليل. يتم تحديد هذه الكائنات بواسطة تجزئات SHA-1 وتصنف على أنها الكتل والأشجار والالتزامات والعلامات.

دورة حياة تخزين البيانات:

  1. عند إضافة ملف، يتم تخزين محتوياته كملف blob.
  2. A tree هيكل ملف الخرائط.
  3. A commit ربط الأشجار والبيانات الوصفية.
  4. A tag تشير إلى الالتزامات الخاصة بالإصدارات.

على سبيل المثال: الركض git cat-file -p <hash> يتيح لك فحص كائنات Git بشكل مباشر.

هذا التصميم يضمن تكامل البيانات, الإصدار tracالقدرةو أداء خفيف الوزن، مما يجعل Git أكثر كفاءة مقارنة بالأنظمة القديمة مثل SVN.


32) ما هو الفرق بين Git Rebase Interactive و Git Merge؟

عامل Git Rebase Interactive (git rebase -i) جيت دمج
الهدف يسمح بتحرير وإعادة ترتيب وضغط الالتزامات يجمع بين التاريخ
تاريخنا يعيد كتابة التاريخ يحفظ جميع الالتزامات
الحلول المقترحة التنظيف قبل الدمج الحفاظ على الجدول الزمني الأصلي

على سبيل المثال: قبل دمج فرع الميزة، يمكن للمطور استخدام:

git rebase -i main

لسحق الالتزامات غير الضرورية وإنتاج تاريخ أكثر وضوحًا وخطيًا.

دمج يعتبر أكثر أمانًا للفروع التعاونية، بينما rebase يعزز قابلية القراءة لعمليات سير العمل التطويرية الخاصة.


33) ما هو Sparse Checkout في Git وما هي فوائده؟

الدفع المتفرق يتيح للمطورين استنساخ أو العمل مع مجموعة فرعية فقط من الملفات من مستودع كبير، مما يقلل من استخدام التخزين المحلي ويسرع العمليات.

الأوامر:

git clone --no-checkout <repo-url>
git sparse-checkout init --cone
git sparse-checkout set <folder-path>

الفوائد:

  • تحسين الأداء في مستودعات أحادية.
  • يقلل من استخدام القرص.
  • مثالي لهندسة الخدمات المصغرة.

على سبيل المثال: في مشروع مؤسسي كبير، قد يحتاج المطورون فقط إلى /frontend يقوم Sparse Checkout بتنزيل هذا المجلد فقط، مما يتجنب غيغابايت غير ضرورية من التعليمات البرمجية الخلفية.


34) ما هو Shallow Clone ومتى يجب استخدامه؟

A استنساخ ضحل يقوم بتنزيل جزء فقط من تاريخ المستودع، مما يجعل عملية الاستنساخ أسرع بكثير.

الأمر:

git clone --depth=1 <repo-url>

الفوائد:

  • يقلل وقت الاستنساخ للمستودعات الكبيرة.
  • يوفّر النطاق الترددي ومساحة القرص.
  • مفيد لأنابيب CI التي تحتاج فقط إلى الالتزامات الأخيرة.

العيوب:

  • لا يمكن الوصول إلى الالتزامات القديمة أو إعادة التأسيس بما يتجاوز العمق الذي تم جلبه.
  • رؤية محدودة للتاريخ.

على سبيل المثال: غالبًا ما تستخدم أنظمة CI/CD استنساخات ضحلة لجلب أحدث إصدار من التعليمات البرمجية بسرعة للإنشاءات الآلية دون تاريخ الالتزام الكامل.


35) ما هو Git LFS (تخزين الملفات الكبيرة) ولماذا يتم استخدامه؟

بوابة LFS (تخزين الملفات الكبيرة) هو امتداد يقوم باستبدال الملفات الكبيرة (مثل الصور ومجموعات البيانات والثنائيات) بمؤشرات نصية خفيفة الوزن داخل Git، مع تخزين المحتوى الفعلي في خادم LFS بعيد.

مثال على الأمر:

git lfs install
git lfs track "*.zip"

المزايا:

  • يحافظ على مستودع خفيف الوزن.
  • تحسين الأداء مع الملفات الثنائية الكبيرة.
  • يعمل بسلاسة مع GitHub و GitLab و Bitbucket.

على سبيل المثال: تستخدم فرق تطوير الألعاب Git LFS للتعامل مع الأصول ثلاثية الأبعاد الكبيرة دون إبطاء عمليات Git العادية.


36) كيف يمكنك تكوين Git للحصول على الأداء الأمثل؟

يمكنك تحسين سرعة Git وسهولة استخدامه عن طريق ضبط معلمات التكوين.

أفضل الممارسات:

  • تمكين الضغط: git config --global core.compression 9
  • تعيين Auto GC (جمع القمامة): git gc --auto
  • استخدام الجلب المتوازي (v2.31+): git config --global fetch.parallel 4
  • تمكين تخزين بيانات الاعتماد مؤقتًا: git config --global credential.helper cache

على سبيل المثال: بالنسبة لمستودعات البيانات على مستوى المؤسسة، يؤدي تحسين إعدادات جلب البيانات وضغطها في Git إلى تقليل زمن الوصول إلى الاستنساخ والسحب بشكل كبير، مما يؤدي إلى تحسين الإنتاجية عبر الفرق الموزعة.


37) ما هو Commit Signing (GPG) في Git ولماذا هو مهم؟

استخدامات توقيع الالتزام GPG (GNU Privacy Guard) للتحقق تشفيريًا من صحة التغييرات، والتأكد من أن التغييرات تأتي من مساهمين موثوق بهم.

مثال الإعداد:

git config --global user.signingkey <GPG-key>
git commit -S -m "Signed commit"

الفوائد:

  • يمنع الالتزامات غير المصرح بها أو المنتحلة.
  • يعمل على تعزيز أمان المستودع وإمكانية التدقيق.
  • بناء الثقة التنظيمية.

على سبيل المثال: غالبًا ما تتطلب المشاريع مفتوحة المصدر التزامات موقعة بـ GPG لتأكيد صحة المساهمات من المطورين الخارجيين.


38) كيف يتعامل Git مع الملفات الثنائية بشكل مختلف عن ملفات النصوص؟

تم تحسين Git للتعامل مع شفرة المصدر النصية و tracks التغييرات سطرًا بسطر، وهو أمر لا يعمل بشكل جيد مع الملفات الثنائية. تُخزَّن الملفات الثنائية ككتل مفردة - أي تعديل يُنشئ إصدارًا جديدًا بدلًا من اختلاف.

نوع الملف كفاءة التخزين دعم الفرق المعالجة الموصى بها
نص فعال جدا نعم جيت الافتراضي
ثنائي غير فعال لا استخدم Git LFS

على سبيل المثال: بالنسبة لمستودعات الصور الكثيفة، فإن تمكين Git LFS يمنع تدهور الأداء الناجم عن تحديثات الملفات الثنائية المتكررة.


39) كيف يمكنك استكشاف أخطاء Git الشائعة وإصلاحها مثل أخطاء HEAD المنفصلة أو أخطاء الدمج؟

المشاكل الشائعة والإصلاحات:

القضية سبب الحلول
رأس منفصل التحقق من التزام محدد إنشاء فرع مع git checkout -b new-branch
دمج الصراع التعديلات المتضاربة في الملفات الحل يدويا، ثم git add و git commit
الالتزامات المفقودة إعادة الضبط أو إعادة التأسيس عن طريق الخطأ استعمل git reflog للتعافي
تم رفض الدفع التحديثات عن بعد في المستقبل اسحب أو أعد القاعدة قبل الدفع

على سبيل المثال: عندما تحدث أخطاء "غير التقديم السريع"، فهذا يعني عادةً وجود تغييرات عن بُعد — استخدم git pull --rebase للمزامنة قبل إعادة المحاولة.


40) ما هي أفضل ممارسات الأمان لمستودعات Git؟

  1. استخدم مصادقة SSH أو HTTPS: تجنب استخدام بيانات اعتماد عادية.
  2. تمكين 2FA على منصات استضافة Git.
  3. تجنب إفشاء الأسرار أو المفاتيح: استعمل .gitignore أو أدوات مثل GitGuardian.
  4. قم بتوقيع الالتزامات باستخدام مفاتيح GPG.
  5. تقييد التحكم في الوصول: فرض مبادئ الحد الأدنى من الامتيازات.
  6. استخدم قواعد حماية الفرع لـ main or master.
  7. إجراء عمليات تدقيق منتظمة للمستودع.

على سبيل المثال: غالبًا ما تقوم الشركات بدمج المسح السري وتنفيذ الالتزامات الموقعة في خطوط أنابيب CI/CD لمنع تسرب البيانات والتغييرات غير المصرح بها.


41) كيف تقوم بأتمتة عمليات Git باستخدام shell أو Python نصوص؟

تعمل أتمتة Git على تعزيز الإنتاجية والاتساق في المهام المتكررة مثل عمليات الالتزام والدمج والنشر.

مثال – Shell Script:

#!/bin/bash
git add .
git commit -m "Auto commit on $(date)"
git push origin main

مثال - Python البرنامج النصي (باستخدام GitPython):

from git import Repo
repo = Repo('.')
repo.git.add(A=True)
repo.index.commit("Automated commit")
origin = repo.remote(name='origin')
origin.push()

الفوائد:

  • يقلل من الجهد اليدوي.
  • ضمان أنماط الالتزام المتسقة.
  • يتكامل بسلاسة مع خطوط أنابيب CI/CD وDevOps.

42) ما هي Git Hooks وكيف يمكن استخدامها في الأتمتة؟

جيت هوكس هي نصوص برمجية يتم تشغيلها بواسطة أحداث Git محددة، وتستخدم لفرض القواعد أو أتمتة العمليات.

أنواع الخطافات:

النوع يعمل على مثال
من جانب العميل آلة المطور pre-commit, prepare-commit-msg
من جانب الخادم مستودع بعيد pre-receive, post-receive

على سبيل المثال: A pre-commit يمكن لـ hook تشغيل اختبارات linter أو اختبارات الوحدة قبل السماح بالالتزام.

الفوائد:

  • يحافظ على جودة الكود.
  • يمنع انتهاكات السياسة.
  • يقوم بأتمتة مهام التحقق المتكررة في سير العمل.

43) كيف يمكنك نقل مشروع من SVN أو Mercurial إلى Git؟

الهجرة من الأنظمة المركزية مثل SVN إلى بوابة يتضمن تحويلًا منظمًا للاحتفاظ بسجل الالتزام.

الخطوات التالية:

  1. تثبيت أدوات الهجرة: git svn or svn2git.
  2. استنساخ مستودع SVN:
    git svn clone <SVN_URL> --trunk=trunk --branches=branches --tags=tags
  3. تحويل العلامات والفروع.
  4. ادفع إلى مستودع Git البعيد (على سبيل المثال، GitHub).

المزايا:

  • تمكين سير العمل الموزعة.
  • يزيد من الأداء والمرونة.
  • يُبسط التفرع والاندماج.

على سبيل المثال: تستخدم المنظمات التي تهاجر من أنظمة SVN القديمة svn2git للحفاظ على التأليف وتسجيل التاريخ.


44) ما هي الفروقات بين Git Flow والتطوير القائم على Trunk؟

البعد تدفق بوابة التنمية القائمة على الجذع
المتفرعة فروع متعددة (تطوير، إصدار) فرع رئيسي واحد
نموذج الإصدار دورات الإصدار الثابتة الانتشار المستمر
تعقيد معتدلة إلى عالية منخفض
أفضل من أجل فرق كبيرة ومستقرة فرق سريعة الحركة ورشيقة

على سبيل المثال: يعد Git Flow هو الأفضل للمشروعات المؤسسية ذات الإصدارات الخاضعة للرقابة، بينما يعد Trunk-Based مثاليًا للشركات الناشئة أو الخدمات المصغرة حيث تكون السرعة أمرًا بالغ الأهمية.

مقارنة الفوائد:

  • تدفق جيت: التحكم القوي في الإصدار.
  • يعتمد على الجذع: ردود الفعل السريعة ومواءمة CI/CD.

45) ما هي الاستراتيجيات التي يمكنها تحسين أداء Git لمستودعات التخزين الكبيرة جدًا؟

بالنسبة للمشاريع على مستوى المؤسسة التي تحتوي على آلاف الالتزامات أو المساهمين، قد يتدهور أداء Git إذا لم يتم تحسينه.

استراتيجيات التحسين الرئيسية:

  1. استعمل استنساخات ضحلة (--depth=1) لتسريع عمليات الدفع.
  2. استعمل الدفع المتفرق لجلب الدلائل ذات الصلة فقط.
  3. يجري جمع القمامة: git gc --aggressive.
  4. تقسيم المستودعات الأحادية إلى وحدات فرعية أو خدمات مصغرة.
  5. ضغط الكائنات وتعبئة الملفات بشكل منتظم.

على سبيل المثال: في المستودعات الأحادية التي تزيد عن 10 جيجابايت، يؤدي تمكين الخروج المتفرق وجمع القمامة المنتظم إلى تقليل أوقات الاستنساخ والجلب بشكل كبير.


46) كيف يدعم Git التطوير التعاوني في الفرق الموزعة؟

يُمكّن Git التعاون من خلال توزيع نسخ كاملة من المستودع على المطورين. يستطيع كل مطور الالتزام محليًا، ودفع التغييرات إلى وحدات تحكم عن بُعد، ودمج أعمال الآخرين.

مثال على سير العمل التعاوني:

  1. شوكة المستودع.
  2. إنشاء فرع ميزة.
  3. ادفع التغييرات وافتح طلب سحب.
  4. Revعرض ودمج في main.

الفوائد:

  • تمكين تطوير الميزات المتوازية.
  • يقلل من اختناقات التبعية.
  • يدعم العمل دون اتصال بالإنترنت وسير العمل المرنة.

على سبيل المثال: يتعاون المساهمون في المصادر المفتوحة في جميع أنحاء العالم بشكل غير متزامن عبر الشوكات وطلبات السحب المستضافة على GitHub.


47) ما هو Git Garbage Collection ولماذا هو مهم؟

git gc (Garbage Collection) يقوم بتنظيف الملفات غير الضرورية ويحسن تخزين المستودع عن طريق ضغط الكائنات وتقليم الالتزامات التي لا يمكن الوصول إليها.

الأمر:

git gc --aggressive --prune=now

الفوائد:

  • يحرر مساحة القرص.
  • تحسين أداء المستودع.
  • يقلل من التكرار في كائنات الالتزام.

على سبيل المثال: المطورون غالبا ما يقومون بتشغيل git gc بعد عمليات الدمج المتعددة أو حذف الفروع للحفاظ على صحة المستودع، وخاصة في المشاريع طويلة الأمد.


48) ما هو Git Blame وكيف يتم استخدامه لتصحيح الأخطاء؟

git blame يحدد أي التزام والمؤلف قام بتعديل كل سطر من الملف آخر مرة.

مثال على الأمر:

git blame app.py

استخدم حالات:

  • Tracإدخال الأخطاء.
  • تحديد ملكية أقسام الكود.
  • مراجعة التغييرات من أجل المساءلة.

على سبيل المثال: إذا بدأت إحدى الوظائف في الفشل بعد التحديث الأخير، git blame يمكنك تحديد الالتزام المحدد والمطور الذي أجرى التغيير، مما يساعد على تصحيح الأخطاء بشكل أسرع.


49) ما هو الفرق بين التفرع والاستنساخ في Git؟

عامل شوكة استنساخ
تعريف نسخة من المستودع الموجود ضمن حسابك على خدمة الاستضافة نسخة محلية من المستودع
المدينة المنورة - بجوار المسجد النبوي جانب الخادم (على سبيل المثال، GitHub) آلة المطور
الحلول المقترحة المساهمة في مشروع آخر التنمية المحلية
علاقة متصل عبر طلبات السحب المزامنة المباشرة مع جهاز التحكم عن بعد

على سبيل المثال: عند المساهمة في مشاريع مفتوحة المصدر، يمكنك إنشاء مستودع، وإجراء تغييرات محليًا بعد الاستنساخ، وإرسال طلب سحب للمراجعة.


50) ما هي الأخطاء الأكثر شيوعًا في Git وكيفية تجنبها؟

خطأ الوصف الوقاية
الالتزام بالبيانات الحساسة الأسرار أو بيانات الاعتماد المضمنة استعمل .gitignore أو GitGuardian
الدفع بالقوة إلى الفروع المشتركة يستبدل عمل الآخرين استعمل --force-with-lease
الالتزامات الثنائية الكبيرة يؤدي إلى إبطاء أداء المستودع استخدم Git LFS
تخطىping مراجعات التعليمات البرمجية يؤدي إلى جودة رديئة استخدام طلبات السحب
تجاهل تعارضات إعادة التأسيس أسباب دمج الفوضى حل النزاعات بعناية قبل الدفع

على سبيل المثال: مطور يدفع عن طريق الخطأ .env يمكن أن يؤدي الملف الذي يحتوي على بيانات اعتماد إلى الكشف عن معلومات حساسة؛ ويمكن تجنب ذلك باستخدام .gitignore القواعد وخطافات ما قبل الالتزام.

🔍 أفضل أسئلة مقابلة GIT مع سيناريوهات واقعية واستجابات استراتيجية

1) ما هو Git، وكيف يختلف عن أنظمة التحكم في الإصدارات الأخرى؟

المتوقع من المرشح: يريد المحاور تقييم مدى فهمك لأساسيات Git ومزاياه مقارنة بالأنظمة المركزية.

مثال للإجابة: Git هو نظام تحكم في الإصدارات موزع يسمح للمطورين بـ tracيُتيح نظام Git للمطورين إمكانية إجراء تغييرات على قاعدة بياناتهم البرمجية والتعاون بكفاءة. على عكس الأنظمة المركزية مثل SVN، يسمح Git لكل مطور بالحصول على نسخة كاملة من المستودع، بما في ذلك سجل التغييرات. يدعم هذا الهيكل العمل دون اتصال بالإنترنت، ويُسرّع العمليات، ويُحسّن إمكانيات التفرع والدمج.


2) هل يمكنك توضيح الفرق بين git fetch و git pull و git merge؟

المتوقع من المرشح: يقوم المحاور باختبار معرفتك بالأوامر الشائعة في Git وأغراضها.

مثال للإجابة: git fetch يقوم بتنزيل بيانات جديدة من مستودع بعيد ولكنه لا يدمجها في فرعك الحالي. git pull يقوم بإجراء عملية جلب متبوعة بدمج تلقائي، ودمج الالتزامات الجديدة. git merge يتم استخدامه لدمج التغييرات من فرع إلى آخر يدويًا بعد جلب التحديثات.


٣) صف موقفًا اضطررت فيه إلى حلّ تعارض دمج. كيف تعاملت معه؟

المتوقع من المرشح: يريد القائم بإجراء المقابلة أن يعرف مهاراتك في حل النزاعات وقدرتك على إدارة سير العمل التعاوني.

مثال للإجابة: في وظيفتي السابقة، كنا نعمل باستمرار على فروع مشتركة، مما أدى أحيانًا إلى تعارضات في الدمج. عندما واجهتُ واحدة، استخدمتُ git status لتحديد الملفات المتعارضة، ومراجعة كلا الإصدارين لتحديد التغييرات التي يجب الاحتفاظ بها. بعد تحرير الملفات واختبارها، وضعتُ علامة على أن التعارض قد حُلّ، وأُجريتُ التغييرات. كما تواصلتُ مع الفريق لتجنب مشاكل مماثلة في المستقبل من خلال تحسين ممارسات إدارة الفروع.


4) كيف تستخدم استراتيجيات التفرع في Git لإدارة المشاريع؟

المتوقع من المرشح: يريد القائم بالمقابلة معرفة ما إذا كنت تفهم سير العمل المنظمة مثل Git Flow أو التطوير المستند إلى الجذع.

مثال للإجابة: أنا عادةً ما أستخدم استراتيجية Git Flow التي تتضمن main, develop، وفروع الميزات. يتم إنشاء فروع الميزات لكل مهمة جديدة، ودمجها في develop بعد الانتهاء، ثم يتم اختباره قبل الدمج في mainتضمن هذه الطريقة التكامل المتحكم به ودورات الإصدار النظيفة.


5) ما هي الخطوات التي ستتخذها إذا قمت عن طريق الخطأ بنقل معلومات حساسة إلى مستودع Git؟

المتوقع من المرشح: يقوم القائم بالمقابلة بتقييم قدرتك على الاستجابة بشكل فعال لمشكلة تتعلق بالأمن أو الامتثال.

مثال للإجابة: أولاً، سأقوم بإزالة الملف الحساس باستخدام git rm --cached وأُجري التغيير. بعد ذلك، سأستخدم أدوات مثل git filter-branch or BFG Repo-Cleaner لحذف المعلومات من السجل. وأخيرًا، سأُعيد تدوير أي بيانات اعتماد مكشوفة وأُبلغ الجهات المعنية لتجنب أي مخاطر محتملة.


6) كيف يمكنك ضمان اتساق الكود عندما يقوم العديد من المطورين بالالتزام في نفس الوقت؟

المتوقع من المرشح: يريد المحاور أن يفهم كيفية الحفاظ على سلامة الكود في البيئات التعاونية.

مثال للإجابة: في وظيفتي السابقة، طبقنا سياسةً تُلزم جميع الالتزامات بالمرور عبر طلبات سحب ومراجعات الكود. وضمنت عمليات التحقق التلقائية من التكامل المستمر دمج الكود الذي تم اختباره ومراجعته فقط. حافظ هذا النهج على الجودة والاتساق في جميع الفروع.


7) كيف يمكنك إرجاع التزام تم دفعه بالفعل إلى فرع مشترك؟

المتوقع من المرشح: يريد المحاور أن يعرف ما إذا كنت تفهم كيفية إدارة الأخطاء بأمان في مستودع مشترك.

مثال للإجابة: الطريقة الأكثر أمانا هي استخدام git revert <commit_id>، مما يُنشئ التزامًا جديدًا يُلغي التغييرات من الالتزام المُحدد. هذا يُحافظ على سجل المشروع ويتجنب إزعاج المطورين الآخرين، على عكس git reset، الذي يعيد كتابة التاريخ.


8) أخبرني عن وقت كان عليك فيه إدارة فروع متعددة لإصدارات مختلفة.

المتوقع من المرشح: يريد القائم بالمقابلة أن يتعرف على قدرتك على إدارة التعقيد في التحكم في الإصدار.

مثال للإجابة: في وظيفتي السابقة، كنا نحافظ على إصدارات متعددة للعملاء. كنت أستخدم فروع إصدارات منفصلة لكل إصدار، وأُجري إصلاحات حرجة باستخدام أسلوب "اختيار الأفضل". وقد ضمن ذلك تطبيق التحديثات باستمرار دون حدوث أي تراجع في الإصدارات الأحدث.


9) كيف تتعامل مع المستودعات الكبيرة التي تحتوي على العديد من المساهمين للحفاظ على الأداء الأمثل؟

المتوقع من المرشح: يقوم المحاور بتقييم معرفتك بتوسيع نطاق Git بشكل فعال.

مثال للإجابة: أشجع الاستنساخ السطحي (--depth) للوصول والاستخدام بشكل أسرع .gitignore لاستبعاد الملفات غير الضرورية. نقوم أيضًا بحذف الفروع القديمة بانتظام، ونستخدم Git LFS (تخزين الملفات الكبيرة) للأصول الثنائية. هذه الخطوات تضمن كفاءة المستودع وسهولة إدارته.


١٠) صف موقفًا اضطررت فيه لتصحيح خطأ في Git أعاق التطوير. ما هو نهجك؟

المتوقع من المرشح: يريد القائم بالمقابلة أن يرى قدرتك على التفكير التحليلي ومهاراتك في استكشاف الأخطاء وإصلاحها.

مثال للإجابة: في منصب سابق، تعرّض سجلّ فرع أحد أعضاء الفريق للتلف بسبب خطأ في إعادة التأسيس. قمتُ بالتحقيق باستخدام git log و git reflog إلى tracقمت بحل المشكلة. ثم قمت باستعادة التغييرات الصحيحة باستخدام git cherry-pick وتأكدنا من مزامنة جميع فروعنا المحلية مع الإصدار الثابت عن بُعد. وقد حال هذا دون حدوث المزيد من الانقطاعات، وحافظ على إنتاجية الفريق.

تلخيص هذه التدوينة بـ: