0%
الدرس 5 من 10
اكتمل 50%

مقدمة إلى GitHub

تعرّف على GitHub، وأنشئ حسابك، وتعلّم كيفية استخدام هذه المنصة لاستضافة مشاريعك.

مقدمة إلى GitHub

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

ما هي GitHub؟

GitHub منصة ويب تعتمد على Git للتحكم في الإصدارات وتضيف إليه ميزات تعاونية:

  • استضافة المستودعات: تخزين سحابي لمشاريع Git الخاصة بك
  • واجهة ويب: إدارة مرئية لمستودعاتك
  • التعاون: أدوات للعمل ضمن فريق
  • التكامل المستمر: GitHub Actions للأتمتة
  • إدارة المشاريع: Issues وmilestones والمشاريع
  • التوثيق: Wiki وREADME وGitHub Pages

GitHub مقابل Git

الجانبGitGitHub
النوعأداة للتحكم في الإصداراتمنصة ويب
التثبيتمحلي على جهازكخدمة سحابية
الواجهةسطر الأوامرواجهة ويب + CLI
التعاونأساسيمتقدم (PR وIssues وغيرها)
الاستضافةمحليةسحابية
التكلفةمجانيمجاني + خطط مدفوعة

إنشاء حساب على GitHub

خطوات التسجيل

  1. زر GitHub.com
  2. انقر على “Sign up”
  3. املأ النموذج:
    • Username (اسم مستخدم فريد)
    • Email
    • كلمة المرور
  4. تحقق من بريدك الإلكتروني
  5. اختر خطتك (Free للبداية)

إعداد الملف الشخصي

# عناصر مهمة في الملف الشخصي
- صورة شخصية احترافية
- نبذة تعريفية وصفية
- الموقع الجغرافي
- موقع ويب/معرض أعمال
- روابط الشبكات الاجتماعية

واجهة GitHub

الصفحة الرئيسية

  • Dashboard: نشاط مستودعاتك ومنظماتك
  • Repositories: قائمة مستودعاتك
  • Notifications: النشاط على مشاريعك
  • Explore: اكتشاف مشاريع جديدة

صفحة المستودع

username/repository-name
├── Code (الملفات والمجلدات)
├── Issues (المشكلات والطلبات)
├── Pull requests (اقتراحات التعديلات)
├── Actions (CI/CD)
├── Projects (إدارة المشاريع)
├── Wiki (التوثيق)
├── Security (الأمان)
├── Insights (الإحصاءات)
└── Settings (الإعدادات)

إنشاء أول مستودع لك

الطريقة 1: الإنشاء على GitHub ثم الاستنساخ

# 1. إنشاء المستودع على GitHub.com
# 2. الاستنساخ محليًا
git clone https://github.com/username/mon-projet.git
cd mon-projet

# 3. إضافة محتوى
echo "# Mon Premier Projet" > README.md
git add README.md
git commit -m "Initial commit"
git push origin main

الطريقة 2: الإنشاء محليًا ثم الدفع

# 1. إنشاء المشروع محليًا
mkdir mon-projet
cd mon-projet
git init
echo "# Mon Premier Projet" > README.md
git add README.md
git commit -m "Initial commit"

# 2. إضافة remote الخاص بـ GitHub
git remote add origin https://github.com/username/mon-projet.git
git branch -M main
git push -u origin main

أوامر Git مع GitHub

إعداد الـ remotes

# عرض الـ remotes المُعدّة
git remote -v

# إضافة remote
git remote add origin https://github.com/username/repo.git

# تعديل عنوان URL لـ remote
git remote set-url origin https://github.com/username/nouveau-repo.git

# حذف remote
git remote remove origin

Push وPull

# الدفع إلى GitHub
git push origin main

# دفع فرع جديد
git push -u origin feature/nouvelle-fonctionnalite

# جلب التعديلات
git pull origin main

# الجلب دون دمج
git fetch origin

أنواع المستودعات

المستودعات العامة

  • مرئية للجميع
  • مجانية على GitHub
  • مثالية للمصدر المفتوح
  • تُسهم في إثراء ملفك الشخصي

المستودعات الخاصة

  • مرئية لك ولمتعاونيك فقط
  • مجانية مع بعض القيود
  • مثالية للمشاريع التجارية
  • تحكم دقيق في الوصول

ملفات GitHub الخاصة

README.md

يُعرض ملف README في الصفحة الرئيسية للمستودع:

# اسم المشروع

وصف موجز للمشروع.

## التثبيت

```bash
npm install

الاستخدام

npm start

المساهمة

المساهمات مرحّب بها! راجع CONTRIBUTING.md.

الرخصة

هذا المشروع مرخّص بموجب رخصة MIT - راجع LICENSE لمزيد من التفاصيل.


### .gitignore

توفّر GitHub قوالب .gitignore للغات مختلفة:

```bash
# Node.js
node_modules/
npm-debug.log*
.env

# Python
__pycache__/
*.pyc
.venv/

# Java
*.class
target/

LICENSE

اختيار رخصة مناسبة:

  • MIT: متساهلة جدًا
  • Apache 2.0: متساهلة مع حماية براءات الاختراع
  • GPL v3: Copyleft قوية
  • BSD: متساهلة وبسيطة

GitHub CLI

أداة سطر الأوامر الرسمية من GitHub:

التثبيت

# Windows (باستخدام Chocolatey)
choco install gh

# macOS (باستخدام Homebrew)
brew install gh

# Linux (Ubuntu/Debian)
sudo apt install gh

المصادقة

# تسجيل الدخول إلى GitHub
gh auth login

# التحقق من المصادقة
gh auth status

أوامر مفيدة

# إنشاء مستودع
gh repo create mon-projet --public

# استنساخ مستودع
gh repo clone username/repository

# عرض الـ issues
gh issue list

# إنشاء issue
gh issue create --title "Bug trouvé" --body "Description du bug"

# عرض الـ pull requests
gh pr list

# إنشاء pull request
gh pr create --title "Nouvelle fonctionnalité" --body "Description"

إدارة الصلاحيات

المتعاونون

# إضافة متعاون (عبر واجهة الويب)
Settings > Manage access > Invite a collaborator

الفرق والمنظمات

  • المنظمات: تجميع عدة مستودعات
  • الفرق: إدارة الصلاحيات حسب المجموعة
  • الأدوار: Owner وMember وOutside collaborator

الأمان على GitHub

المصادقة الثنائية (2FA)

  1. Settings > Password and authentication
  2. Enable two-factor authentication
  3. استخدم تطبيقًا (Google Authenticator أو Authy)
  4. احفظ رموز الاسترداد

مفاتيح SSH

إعداد لتجنب كتابة كلمة المرور في كل مرة:

# توليد مفتاح SSH
ssh-keygen -t ed25519 -C "votre.email@example.com"

# إضافة المفتاح إلى وكيل SSH
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

# نسخ المفتاح العام
cat ~/.ssh/id_ed25519.pub

# الإضافة على GitHub: Settings > SSH and GPG keys

Personal Access Tokens

للمصادقة عبر HTTPS:

# توليد token: Settings > Developer settings > Personal access tokens
# استخدم الـ token ككلمة مرور
git clone https://github.com/username/repo.git
# Username: votre-username
# Password: votre-token

GitHub Pages

استضافة مواقع ويب ثابتة مجانًا:

التفعيل

  1. Settings > Pages
  2. اختر المصدر (الفرع main، أو docs/، إلخ)
  3. سيكون موقعك متاحًا على: https://username.github.io/repository

مثال على موقع بسيط

<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
    <title>Mon Site GitHub Pages</title>
</head>
<body>
    <h1>Bienvenue sur mon site !</h1>
    <p>Hébergé gratuitement sur GitHub Pages.</p>
</body>
</html>

تمارين عملية

التمرين 1: المستودع الأول

# 1. أنشئ مستودعًا على GitHub.com باسم "hello-github"
# 2. استنسخه محليًا
git clone https://github.com/VOTRE-USERNAME/hello-github.git
cd hello-github

# 3. أنشئ ملف README
echo "# Hello GitHub" > README.md
echo "Mon premier projet sur GitHub !" >> README.md

# 4. أضف الملف وادفعه
git add README.md
git commit -m "Add README"
git push origin main

التمرين 2: مشروع ببنية منظمة

# 1. إنشاء البنية
mkdir src docs tests
echo "console.log('Hello World!');" > src/app.js
echo "# Documentation" > docs/README.md
echo "// Tests à venir" > tests/app.test.js

# 2. إنشاء ملف .gitignore
echo "node_modules/" > .gitignore
echo "*.log" >> .gitignore

# 3. إضافة كل شيء والدفع
git add .
git commit -m "Initial project structure"
git push origin main

التمرين 3: GitHub Pages

# 1. إنشاء موقع بسيط
echo "<!DOCTYPE html>
<html>
<head><title>Mon Site</title></head>
<body><h1>Hello GitHub Pages!</h1></body>
</html>" > index.html

# 2. الدفع
git add index.html
git commit -m "Add GitHub Pages site"
git push origin main

# 3. فعّل GitHub Pages من Settings
# 4. زر https://VOTRE-USERNAME.github.io/VOTRE-REPO

اكتشاف المشاريع

البحث المتقدم

# Syntaxe de recherche GitHub
language:javascript stars:>1000
user:microsoft language:typescript
org:facebook created:>2020-01-01
  • Explore > Trending: المشاريع الشائعة
  • التصفية حسب اللغة والفترة الزمنية
  • اكتشاف تقنيات جديدة

Topics والوسوم

  • تنظيم المستودعات حسب الموضوع
  • تسهيل الاكتشاف
  • أمثلة: web-development وmachine-learning وapi

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

README فعّال

  1. عنوان واضح ووصف
  2. تعليمات التثبيت
  3. أمثلة على الاستخدام
  4. إرشادات المساهمة (Contribution guidelines)
  5. الرخصة ووسائل التواصل

الـ commits ورسائلها

# رسائل واضحة ووصفية
git commit -m "feat: add user authentication"
git commit -m "fix: resolve login bug on mobile"
git commit -m "docs: update API documentation"

تنظيم المستودعات

  • مستودع واحد لكل مشروع
  • أسماء وصفية
  • وسوم (Tags) للإصدارات
  • فروع منظمة

التكاملات الشائعة

خدمات الأطراف الثالثة

  • Travis CI: التكامل المستمر
  • Codecov: تغطية الشيفرة
  • Dependabot: تحديث الاعتماديات
  • Slack/Discord: الإشعارات

تطبيقات GitHub

  • GitHub Desktop: واجهة رسومية
  • VS Code: امتداد GitHub
  • تطبيقات الجوال: GitHub لنظامي iOS/Android

استكشاف الأخطاء الشائعة وإصلاحها

مشكلات المصادقة

# التحقق من الإعدادات
git config --list | grep user

# اختبار اتصال SSH
ssh -T git@github.com

# إعادة تعيين بيانات الاعتماد
git config --global --unset user.name
git config --global --unset user.email

أخطاء الدفع (push)

# الخطأ: Updates were rejected
git pull origin main
git push origin main

# فرض الدفع (تنبيه)
git push --force-with-lease origin main

موارد إضافية

التوثيق الرسمي

المجتمع

الخلاصة

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

في الدرس القادم، سنتعمّق في التعاون على GitHub من خلال pull requests وissues وغيرها من الأدوات التعاونية.


وقت القراءة المقدّر: 20 دقيقة
المستوى: مبتدئ
الخطوة السابقة: الفروع والدمج
الخطوة التالية: التعاون عبر GitHub