Git & GitHub • المستوى الثالث • الدرس 4
العودة لفهرس المستوىنسخ المستودعات والمساهمة مفتوحة المصدر (Forking & Open Source)
أهداف الدرس
- فهم الفرق بين
CloneوForkللمساهمة في المكتبات العامة. - متابعة التحديثات الأصلية بضبط مصدر الـ
upstream. - جلب تحديثات المستودع الأصلي بـ
git fetch upstreamبأمان. - إكمال دورة المساهمة: Fork ← Clone ← Branch ← Commit ← Push ← PR.
1. ما هي تقنية Fork؟
عملية Fork تصنع لك نسخة مستقلة بالكامل من مشروع مفتوح المصدر على حسابك، مما يسمح لك بالتعديل بحرية كاملة ثم إرسال Pull Request لصاحب المشروع الأصلي للموافقة على إضافاتك.
bash
# آلية المساهمة في مشروع مفتوح المصدر
# الخطوة 1: على GitHub -> اضغط Fork على المستودع الأصلي
# الخطوة 2: استنسخ نسختك (وليس الأصلية!)
git clone https://github.com/your-username/repo.git
# الخطوة 3: أضف المستودع الأصلي كمصدر للمتابعة
git remote add upstream https://github.com/original-owner/repo.git
# الخطوة 4: تحقق من الرابطين
git remote -v
# origin https://github.com/your-username/repo.git (fetch/push)
# upstream https://github.com/original-owner/repo.git (fetch/push)
# الخطوة 5: جلب تحديثات الأصل (بدون دمج)
git fetch upstream2. الفرق بين origin و upstream
origin (نسختك)
الرابط الذي يشير إلى الـ Fork الخاص بك على GitHub. منه ترفع الالتزامات (push).
github.com/YOU/repo.git
upstream (الأصلي)
الرابط الذي يشير إلى المستودع الأصلي. منه تجلب التحديثات (fetch).
github.com/OWNER/repo.git
3. دورة المساهمة الكاملة في مشروع Open Source
1. Fork
على GitHub ← نسخة على حسابك
2. Clone
تنزيل نسختك محلياً
3. Branch
فرع للميزة/الإصلاح
4. Commit
رسالة معيارية
5. Push
رفع لنسختك (origin)
6. PR
طلب سحب للأصل
التطبيق العملي المباشر
تحدي الدرس الرابع: دورة مساهمة كاملة في مشروع مفتوح المصدر
قم بالتعديل على الكود بداخل المحرر أدناه لتطبيق المتطلبات التالية:
- استنسخ نسختك (Fork) من المشروع بـ
git clone. - تحقق من رابط
originبـgit remote -v. - أضف المستودع الأصلي كمصدر
upstreamبـgit remote add. - تحقق من الرابطين معاً (origin + upstream).
- اجلب التحديثات من الأصل بـ
git fetch upstream. - اعرض الفروع المحلية والبعيدة بـ
git branch -a. - أنشئ فرعاً للمساهمة
fix/typo-in-readmeبخطوة واحدة. - أنشئ التزاماً برسالة معيارية
docs: fix typo in README installation section. - ارفع الفرع لنسختك بـ
git push -u origin fix/typo-in-readme.
⏳ جارٍ تحميل المحرر التفاعلي...