NahdaAIنهضة
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 upstream

2. الفرق بين 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

طلب سحب للأصل

التطبيق العملي المباشر

تحدي الدرس الرابع: دورة مساهمة كاملة في مشروع مفتوح المصدر

قم بالتعديل على الكود بداخل المحرر أدناه لتطبيق المتطلبات التالية:

  1. استنسخ نسختك (Fork) من المشروع بـ git clone.
  2. تحقق من رابط origin بـ git remote -v.
  3. أضف المستودع الأصلي كمصدر upstream بـ git remote add.
  4. تحقق من الرابطين معاً (origin + upstream).
  5. اجلب التحديثات من الأصل بـ git fetch upstream.
  6. اعرض الفروع المحلية والبعيدة بـ git branch -a.
  7. أنشئ فرعاً للمساهمة fix/typo-in-readme بخطوة واحدة.
  8. أنشئ التزاماً برسالة معيارية docs: fix typo in README installation section.
  9. ارفع الفرع لنسختك بـ git push -u origin fix/typo-in-readme.
⏳ جارٍ تحميل المحرر التفاعلي...