Git & GitHub

مقدمة في GitHub — دليل شامل 2026

📅 2026-11-26⏱ 8 دقائق قراءة
في المقال السابق، تعلمت الدمج. الآن سنتعلم **GitHub** — المنصة التي تجعل Git **قوياً حقاً** للعمل الجماعي. في هذا الدليل العملي، سنأخذك خطوة بخطوة لفهم GitHub، مع تمارين وحلول. ## ما هو GitHub؟ **GitHub** هو **منصة استضافة** لمستودعات Git. **تشبيه بسيط:** - **Git:** هو **الأداة** (مثل Word). - **GitHub:** هو **Google Drive** (مكان لرفع الملفات). **GitHub يضيف لـ Git:** - **استضافة سحابية** للمستودعات. - **التعاون** (Pull Requests). - **التتبع** (Issues). - **الأتمتة** (Actions). - **النشر** (Pages, Actions). - **المجتمع** (ملايين المطورين). ## لماذا GitHub؟ قبل أن نبدأ، دعنا نتفق على الأسباب: - **الأكثر شعبية:** 100M+ مطور. - **محفظة أعمالك:** يعرض مهاراتك. - **التوظيف:** الشركات تبحث عن مطورين فيها. - **مفتوح المصدر:** ساهم في مشاريع. - **مجاني:** للمشاريع العامة والخاصة. - **مملوك لـ Microsoft:** استقرار وأمان. ## بدائل GitHub <table> <thead> <tr> <th>المنصة</th> <th>المميزات</th> <th>الاستخدام</th> </tr> </thead> <tbody> <tr> <td><strong>GitHub</strong></td> <td>الأكثر شعبية</td> <td>مفتوح المصدر</td> </tr> <tr> <td><strong>GitLab</strong></td> <td>CI/CD قوي</td> <td>الشركات</td> </tr> <tr> <td><strong>Bitbucket</strong></td> <td>مجاني للفرق الصغيرة</td> <td>Atlassian</td> </tr> <tr> <td><strong>Gitea</strong></td> <td>مفتوح، استضافة ذاتية</td> <td>خصوصية</td> </tr> </tbody> </table> ## الجزء الأول: إنشاء حساب GitHub ### 1. التسجيل 1. اذهب إلى: **github.com** 2. اضغط **Sign up**. 3. أدخل: - **Email** (بريدك). - **Password** (قوية). - **Username** (اسم المستخدم). 4. أكمل التحقق (Captcha). 5. اختر **Free Plan**. ### 2. إعداد الملف الشخصي **اذهب إلى:** `Settings → Public profile` **أكمل:** - **Name:** اسمك الكامل. - **Bio:** نبذة عنك. - **Location:** مدينتك. - **Website:** موقعك. - **Social accounts:** حساباتك. ### 3. اختيار صورة شخصية اضغط على الصورة الافتراضية، وارفع صورة. **نصيحة:** استخدم صورة واضحة واحترافية. ## الجزء الثاني: فهم الواجهة ### 1. الصفحة الرئيسية **`github.com`** بعد تسجيل الدخول: - **Feed:** أنشطة من تتابعهم. - **Repositories:** مستودعاتك. - **Sidebar:** روابط سريعة. ### 2. لوحة التحكم **`github.com/dashboard`:** - **Your repositories:** كل مستودعاتك. - **Recent activity:** آخر أنشطتك. - **Explore:** مشاريع مقترحة. ### 3. الملف الشخصي **`github.com/USERNAME`:** - **Overview:** نظرة عامة. - **Repositories:** مستودعاتك العامة. - **Projects:** مشاريعك. - **Packages:** حزمك. - **Stars:** مستودعات أعجبتك. ## الجزء الثالث: إنشاء مستودع ### الخطوة 1: من الصفحة الرئيسية 1. اضغط **+** في الأعلى. 2. اختر **New repository**. ### الخطوة 2: املأ المعلومات - **Repository name:** `my-first-repo` - **Description:** `مستودعي الأول` (اختياري). - **Public** أو **Private:** - **Public:** يراه الجميع (للتعلم). - **Private:** يراه فقط من تشارك معه. - **Initialize with README:** ❌ (لأن لديك واحداً محلياً). ### الخطوة 3: اضغط Create repository ## الجزء الرابع: الملفات المهمة ### 1. `README.md` **ملف الترحيب** الذي يراه الزوار. ```markdown # اسم المشروع وصف قصير للمشروع. ## الميزات - ميزة 1 - ميزة 2 ## التثبيت ```bash npm install ``` ## الاستخدام ```bash npm start ``` ## الترخيص MIT ``` ### 2. `LICENSE` **الترخيص** يحدد كيف يمكن استخدام مشروعك. **الأشهر:** - **MIT:** حرية كاملة. - **Apache 2.0:** حرية مع شروط. - **GPL:** مشاريع مشتقة مفتوحة. ### 3. `.gitignore` **الملفات التي لا تُرفع:** ``` node_modules/ .env dist/ *.log ``` ### 4. `CONTRIBUTING.md` **دليل المساهمة:** ```markdown # المساهمة ## كيف تساهم؟ 1. Fork المستودع 2. أنشئ فرعاً جديداً 3. اكتب الكود 4. ارفع PR ``` ### 5. `CODE_OF_CONDUCT.md` **قواعد السلوك** للمساهمين. ## الجزء الخامس: الميزات الرئيسية ### 1. Issues **تتبع المهام والأخطاء:** - **Bug:** خطأ في الكود. - **Feature:** ميزة جديدة. - **Question:** استفسار. **الاستخدام:** ``` العنوان: إصلاح خطأ في تسجيل الدخول الوصف: عند تسجيل الدخول ببريد خاطئ، لا تظهر رسالة خطأ. الخطوات: 1. اذهب لصفحة تسجيل الدخول 2. أدخل بريداً خاطئاً 3. اضغط "دخول" النتيجة المتوقعة: رسالة "بريد خاطئ" النتيجة الحالية: لا يحدث شيء ``` ### 2. Pull Requests **للمساهمة في مشروع:** - **Fork:** نسخة من المستودع. - **Branch:** فرع في نسختك. - **PR:** طلب الدمج. ### 3. Actions **أتمتة المهام:** - **CI/CD:** اختبار وبناء تلقائي. - **Deploy:** نشر تلقائي. - **Notifications:** إشعارات. ### 4. Projects **لوحات إدارة المشاريع:** - **Kanban:** To Do, In Progress, Done. - **Roadmap:** خطة زمنية. - **Table:** جدول. ### 5. Wiki **توثيق المشروع.** ### 6. Pages **استضافة موقع من المستودع:** - `username.github.io` - مجاني. - HTTPS. ### 7. Discussions **منتدى للنقاش.** ### 8. Sponsors **دعم مالي للمطورين.** ## جدول ميزات GitHub <table> <thead> <tr> <th>الميزة</th> <th>الوصف</th> <th>الاستخدام</th> </tr> </thead> <tbody> <tr> <td><strong>Repositories</strong></td> <td>مستودعات</td> <td>تخزين الكود</td> </tr> <tr> <td><strong>Issues</strong></td> <td>تتبع المهام</td> <td>إدارة المشاريع</td> </tr> <tr> <td><strong>Pull Requests</strong></td> <td>طلبات دمج</td> <td>المراجعة</td> </tr> <tr> <td><strong>Actions</strong></td> <td>أتمتة</td> <td>CI/CD</td> </tr> <tr> <td><strong>Projects</strong></td> <td>لوحات</td> <td>إدارة</td> </tr> <tr> <td><strong>Wiki</strong></td> <td>توثيق</td> <td>موسوعة</td> </tr> <tr> <td><strong>Pages</strong></td> <td>استضافة</td> <td>موقع</td> </tr> <tr> <td><strong>Discussions</strong></td> <td>نقاش</td> <td>مجتمع</td> </tr> <tr> <td><strong>Sponsors</strong></td> <td>دعم</td> <td>تمويل</td> </tr> </tbody> </table> ## الجزء السادس: البحث في GitHub ### 1. البحث البسيط في شريط البحث: ``` react tutorial ``` ### 2. البحث المتقدم ``` react language:javascript stars:>1000 ``` **الفلاتر:** - `language:` — اللغة. - `stars:` — النجوم. - `forks:` — التنسخات. - `user:` — المستخدم. - `topic:` — الموضوع. - `license:` — الترخيص. ### 3. Explore `github.com/explore` — مشاريع مقترحة. ### 4. Trending `github.com/trending` — الأكثر رواجاً. ### 5. Topics `github.com/topics` — مواضيع. ## الجزء السابع: نجوم ومتابعة ### 1. Star (نجمة) **Star** = "أعجبني". **الفائدة:** - تحفظ المستودع في قائمتك. - تشجع المؤلف. ### 2. Watch (متابعة) **Watch** = "أريد إشعارات". **الأنواع:** - **All Activity:** كل شيء. - **Participating:** فقط ما تشارك فيه. - **Releases:** الإصدارات فقط. - **Ignore:** لا شيء. ### 3. Fork (تنسخ) **Fork** = نسخة **في حسابك**. **الفائدة:** - تجرب التعديلات بحرية. - تساهم في المشاريع. ## مثال عملي: مستودع كامل ### السيناريو: مشروع "أدواتي" **1. أنشئ المستودع على GitHub** - اسم: `my-tools` - Public - مع README **2. استنسخه محلياً** ```bash git clone https://github.com/USERNAME/my-tools.git cd my-tools ``` **3. أنشئ ملفات** ```bash mkdir src docs echo "# Tools" > README.md echo "console.log('tools');" > src/index.js ``` **4. ارفع** ```bash git add . git commit -m "feat: إعداد المشروع" git push ``` **5. أضف وصفاً للمستودع** - اذهب إلى المستودع. - اضغط ⚙️ بجانب **About**. - أضف وصفاً + Topics. **6. أنشئ Issue** - **Issues → New issue**. - اكتب المهمة. **7. حل Issue بـ PR** - أنشئ فرعاً. - عدّل. - ارفع. - افتح PR. - ادمج. **🎉 مشروع احترافي!** ## تحسين ملفك الشخصي ### 1. Profile README أنشئ مستودعاً باسمك: ``` USERNAME/USERNAME ``` **الملف `README.md`:** ```markdown # مرحباً، أنا أحمد 👋 ## 🚀 مطور ويب - 💻 أعمل بـ React و Next.js - 🌱 أتعلم حالياً TypeScript - 📫 تواصل: [email protected] ## 🛠 المهارات ![JavaScript](https://img.shields.io/badge/-JavaScript-yellow) ![React](https://img.shields.io/badge/-React-blue) ``` **النتيجة:** يظهر في صفحتك الشخصية! ### 2. Pinned Repositories - اذهب لملفك. - اضغط **Customize your pins**. - اختر 6 مستودعات. ## تمارين عملية ### تمرين 1: إنشاء حساب أنشئ حساب GitHub وأكمل ملفك. ### تمرين 2: إنشاء مستودع أنشئ مستودعاً باسم `hello-world`. **الحل:** - **+** → **New repository**. - `hello-world`. - Public. - Create. ### تمرين 3: رفع مشروع ارفع مشروعاً من جهازك. **الحل:** ```bash git init git add . git commit -m "أول commit" git remote add origin https://github.com/USER/hello-world.git git push -u origin main ``` ### تمرين 4: README احترافي اكتب README جيد. **الحل:** (راجع القالب أعلاه) ### تمرين 5: Topics أضف Topics لمستودعك. **الحل:** Settings → Topics → Add: `javascript`, `react`. ### تمرين 6: Issue أنشئ Issue. **الحل:** - Issues → New issue. - اكتب العنوان والوصف. - Create. ### تمرين 7: Star أعجب بمستودعات. **الحل:** افتح مستودعاً، اضغط ⭐. ### تمرين 8: مشروع كامل أنشئ مشروعاً، ارفعه، وأضف كل الميزات. **الحل:** (راجع المثال العملي أعلاه) ## حل المشاكل الشائعة ### 🔴 المشكلة 1: `Permission denied` **الحل:** أعد إعداد SSH: ```bash ssh-keygen -t ed25519 -C "email" # أضف المفتاح لـ GitHub ``` ### 🔴 المشكلة 2: `Repository not found` **الحل:** تأكد من: - الاسم. - الصلاحيات. ### 🔴 المشكلة 3: لا يمكن الرفع لـ main **الحل:** استخدم فرعاً: ```bash git checkout -b feature git push -u origin feature ``` ### 🔴 المشكلة 4: نسيت كلمة المرور **الحل:** - **Settings → Developer settings → Personal access tokens**. - استخدم Token بدلاً من كلمة المرور. ### 🔴 المشكلة 5: `remote: Support for password authentication was removed` **الحل:** استخدم Personal Access Token. ## جدول أوامر GitHub <table> <thead> <tr> <th>الأمر/الإجراء</th> <th>الوظيفة</th> </tr> </thead> <tbody> <tr> <td><code>git clone URL</code></td> <td>استنساخ</td> </tr> <tr> <td><code>git push</code></td> <td>رفع</td> </tr> <tr> <td><code>git pull</code></td> <td>سحب</td> </tr> <tr> <td><code>git remote -v</code></td> <td>عرض الـ remote</td> </tr> <tr> <td>Star ⭐</td> <td>إعجاب</td> </tr> <tr> <td>Fork 🍴</td> <td>تنسخ</td> </tr> <tr> <td>Watch 👁️</td> <td>متابعة</td> </tr> </tbody> </table> ## قائمة تحقق نهائية <table> <thead> <tr> <th>المهمة</th> <th>الحالة</th> </tr> </thead> <tbody> <tr> <td>إنشاء حساب GitHub</td> <td>⬜</td> </tr> <tr> <td>إكمال الملف الشخصي</td> <td>⬜</td> </tr> <tr> <td>إنشاء مستودع</td> <td>⬜</td> </tr> <tr> <td>رفع مشروع</td> <td>⬜</td> </tr> <tr> <td>README احترافي</td> <td>⬜</td> </tr> <tr> <td>إنشاء Issue</td> <td>⬜</td> </tr> <tr> <td>حل التمارين الثمانية</td> <td>⬜</td> </tr> </tbody> </table> ## ماذا بعد هذا المقال؟ الآن بعد أن أتقنت GitHub، أنت جاهز للمقال التالي: 1. **Pull Requests** — العمل الجماعي. 2. **حل التعارضات** — Conflict Resolution. 3. **Workflow احترافي**. ## الخلاصة في هذا المقال، تعلمت: - ✅ ما هو GitHub. - ✅ إنشاء الحساب. - ✅ الواجهة. - ✅ إنشاء المستودعات. - ✅ الملفات المهمة. - ✅ الميزات الرئيسية. - ✅ البحث والاستكشاف. - ✅ تحسين الملف الشخصي. - ✅ حل 8 تمارين عملية. **تذكر:** GitHub هو **محفظة أعمالك** — اجعله احترافياً.