GitHub: العمل مع فريق
درس 2 من 3
2GitHub: العمل مع فريق
الصورة الكبيرةGit يحفظ تاريخك على جهازك، وGitHub يجعله مشتركًا: نسخة في السحابة، ومكان يراجع فيه الزملاء عمل بعضهم قبل أن يدخل المنتج.
ماذا تشاهد في الرسم: هذا «GitHub Flow»: كل تغيير يمرّ بطلب دمج يُراجع ويُختبر آليًا قبل أن يدخل الفرع الرئيسي.
خارطة هذا الجزء
المفاهيم بالترتيب، اضغط أيًّا منها للقفز إليه:
طريقان إلى نفس الفكرة
مثل مستند مشترك في شركة: كل موظف يكتب مسودته في نسخة خاصة (فرع)، ثم يرسلها للمدير ويقول «راجع قبل الاعتماد» (طلب دمج). المدير يعلّق، الموظف يعدّل، ثم تُعتمد في النسخة الرسمية (main).
origin اسم المستودع البعيد. git push -u origin feature يرفع الفرع ويربطه للتتبّع، وgit pull = fetch + merge (أو rebase). طلب الدمج يقارن فرعين، ويشغّل فحوص CI، ويجمع تعليقات المراجعة على الأسطر. حماية الفروع (branch protection) تمنع الدمج بلا مراجعة أو بفحوص فاشلة. التعارض يحدث حين يعدّل فرعان نفس الأسطر، فيضع Git علامات <<<<<<< و======= و>>>>>>> لتقرّر أنت.
قبل أن تبدأ
📸Git من الصفر
تعرف add وcommit والفرع.
🌐حساب GitHub
أنشئ حسابًا مجانيًا على github.com.
الفكرة الجوهرية
1المستودع البعيد: push وpull
git clone ينزّل مستودعًا كاملًا. git push يرفع التزاماتك، وgit pull يجلب التزامات زملائك. ابدأ يومك دائمًا بـ git pull على main.
git clone https://github.com/you/notes.git cd notes git switch -c fix-typo # ... edit, add, commit ... git push -u origin fix-typo
2طلب الدمج والمراجعة
بعد الرفع يقترح GitHub فتح طلب دمج. اكتب فيه ماذا غيّرت ولماذا وكيف اختبرته. الزميل يعلّق على الأسطر، وأنت تعدّل وترفع التزامًا جديدًا على نفس الفرع فيتحدّث الطلب تلقائيًا.
3التذاكر (Issues)
التذكرة سجل لمهمة أو خطأ: عنوان، وصف، خطوات إعادة المشكلة، ومن يعمل عليها. في طلب الدمج تكتب Fixes #12 فتُغلق التذكرة 12 تلقائيًا عند الدمج.
4حل تعارض الدمج
حين يعدّل اثنان نفس السطر يتوقّف Git ويضع العلامات في الملف. أنت تقرّر الصيغة النهائية، تحذف العلامات، ثم add وcommit.
<<<<<<< HEAD Welcome to Darb, your path to engineering. ======= Welcome to Darb, learn to build software. >>>>>>> fix-typo
مثال محلول
المسألة: رفعت فرعك فرفض GitHub بـ «rejected: fetch first». السبب: زميل رفع التزامات على نفس الفرع بعدك. الحل: git pull لجلبها ودمجها، حلّ أي تعارض، ثم git push مرة أخرى. لا تستخدم --force على فرع يشاركك فيه أحد.
خرافة مقابل حقيقة
| الخرافة | الحقيقة |
|---|---|
| طلب الدمج يعني أن عملي سيئ ويحتاج تصحيح. | هو عادة كل الفرق المحترفة، حتى كبار المهندسين يُراجعون. المراجعة تنشر المعرفة وتصطاد الأخطاء. |
| التعارض يعني أن أحدًا أخطأ. | هو طبيعي حين يعمل اثنان على نفس الملف. Git فقط يطلب منك القرار. |
اختبر فهمك
ماذا يفعل git pull؟
pull = fetch + merge.
رأيت في ملف <<<<<<< HEAD. ماذا حدث؟
Git وضع الطرفين بين العلامات لتختار الصيغة النهائية.
أي كلمة في وصف طلب الدمج تغلق التذكرة 7 عند الدمج؟
Fixes وCloses وResolves تربط الإغلاق بالدمج.
بطاقات مراجعة سريعة
تحقق من فهمك
ماذا تكتب في وصف طلب الدمج؟
ماذا غيّرت، لماذا، وكيف اختبرته، ورابط التذكرة إن وجدت.
لماذا --force خطر على فرع مشترك؟
لأنه يستبدل التاريخ البعيد بتاريخك فيمحو التزامات زملائك التي لم تكن عندك.
ما خطوات حل التعارض؟
افتح الملف، اقرأ الطرفين، اكتب الصيغة النهائية، احذف العلامات، شغّل البرنامج، ثم add وcommit.
مصادر هذا الدرس
مرتّبة بالنوع. ابدأ بالتوثيق الرسمي إذا تبي المرجع الدقيق، وبالمقال أو الفيديو إذا تبي الشرح أولًا.
خلّصت الدرس؟
سجّل الدخول ليُحفظ تقدّمك.