Git و GitHub

مقدمة إلى GitHub

13 دقيقة الدرس 18 من 35

مقدمة إلى GitHub

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

ما هي GitHub؟

GitHub أكثر بكثير من مجرد مكان لتخزين الكود:

تقدم GitHub: - استضافة مستودعات Git البعيدة - تصور مستودعات Git على الويب - أدوات التعاون (طلبات السحب، مراجعة الكود) - إدارة المشاريع (القضايا، المشاريع، المعالم) - استضافة الوثائق (الويكي، ملفات README) - التكامل/النشر المستمر (GitHub Actions) - سجل الحزم (npm، Docker، Maven، إلخ) - ميزات الأمان (Dependabot، فحص الكود) - ميزات المجتمع (النجوم، التفرعات، المناقشات)
حقيقة ممتعة: تستضيف GitHub أكثر من 100 مليون مستودع ولديها أكثر من 90 مليون مطور حول العالم. استحوذت عليها Microsoft في 2018 مقابل 7.5 مليار دولار.

GitHub مقابل Git: فهم الفرق

يخلط العديد من المبتدئين بين Git و GitHub. إليك كيف يختلفان:

Git: - نظام التحكم في الإصدارات (برنامج) - يعمل محلياً على جهاز الكمبيوتر الخاص بك - أداة سطر الأوامر - أنشأه Linus Torvalds (2005) - مجاني ومفتوح المصدر - يعمل بدون إنترنت GitHub: - خدمة استضافة قائمة على الويب لـ Git - تعمل على خوادم GitHub (السحابة) - واجهة ويب + أوامر Git - أسسها Tom Preston-Werner (2008) - مستوى مجاني + خطط مدفوعة - يتطلب اتصالاً بالإنترنت
مثال: فكر في Git كبرنامج Microsoft Word (برنامج يُنشئ المستندات) و GitHub كـ Google Drive (خدمة تخزن وتشارك تلك المستندات عبر الإنترنت).

لماذا تستخدم GitHub؟

تقدم GitHub فوائد عديدة للمطورين الأفراد والفرق:

للمطورين الأفراد: ✓ معرض محفظة لأصحاب العمل المحتملين ✓ نسخة احتياطية من الكود الخاص بك في السحابة ✓ التعلم من ملايين المشاريع مفتوحة المصدر ✓ المساهمة في البرمجيات مفتوحة المصدر ✓ بناء سمعة مهنية للفرق: ✓ مستودع كود مركزي ✓ عملية مراجعة كود مدمجة ✓ تتبع القضايا وإدارة المشاريع ✓ سير عمل آلي مع Actions ✓ أدوات تعاون الفريق ✓ التحكم في الوصول والأذونات

إنشاء حساب GitHub

البدء مع GitHub أمر مباشر:

خطوات إنشاء حساب: 1. قم بزيارة https://github.com 2. انقر على "Sign up" في الأعلى على اليمين 3. أدخل عنوان بريدك الإلكتروني 4. أنشئ كلمة مرور (استخدم كلمة مرور قوية!) 5. اختر اسم مستخدم (سيكون عاماً) 6. تحقق من أنك لست روبوت 7. تحقق من بريدك الإلكتروني للحصول على رمز التحقق 8. أكمل ملفك الشخصي (اختياري ولكن موصى به) نصائح اسم المستخدم: - استخدم اسم مستخدم احترافي (سيراه أصحاب العمل) - اجعله بسيطاً ولا يُنسى - طابق ملفات التعريف المهنية الأخرى (LinkedIn، إلخ) - أمثلة: john-smith، jsmith-dev، johnsmith
نصيحة محترف: يصبح اسم مستخدم GitHub الخاص بك جزءاً من عناوين URL للمستودع (github.com/username/repo)، لذا اختر بحكمة. يمكنك تغييره لاحقاً، لكن قد يؤدي ذلك إلى كسر الروابط.

أسعار وخطط GitHub

تقدم GitHub خططاً مختلفة لاحتياجات متنوعة:

GitHub Free: - مستودعات عامة غير محدودة - مستودعات خاصة غير محدودة - 2,000 دقيقة Actions/الشهر - 500 ميجابايت تخزين حزم - دعم المجتمع - مثالي للأفراد والفرق الصغيرة GitHub Pro ($4/شهر): - كل شيء في Free - 3,000 دقيقة Actions/الشهر - 2 جيجابايت تخزين حزم - أدوات ورؤى متقدمة - Pages و Wikis للمستودعات الخاصة GitHub Team ($4/مستخدم/شهر): - كل شيء في Pro - ضوابط وصول الفريق - مراجعين متعددين في طلبات السحب - طلبات سحب مسودة GitHub Enterprise: - استضافة ذاتية أو سحابية - ميزات أمان متقدمة - شهادات الامتثال - دعم مخصص
ملاحظة: يبدأ معظم المطورين بالخطة المجانية، والتي تكفي أكثر من كافية للتعلم والمشاريع الشخصية وحتى العمل المهني.

إعداد مفاتيح SSH

توفر مفاتيح SSH طريقة آمنة للمصادقة مع GitHub دون إدخال كلمات المرور:

1. تحقق من مفاتيح SSH الموجودة: ls -al ~/.ssh # ابحث عن id_rsa.pub أو id_ed25519.pub 2. إنشاء مفتاح SSH جديد (إذا لزم الأمر): ssh-keygen -t ed25519 -C "your_email@example.com" # للأنظمة القديمة: ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 3. بدء وكيل SSH: eval "$(ssh-agent -s)" 4. إضافة مفتاح SSH إلى الوكيل: ssh-add ~/.ssh/id_ed25519 5. نسخ المفتاح العام إلى الحافظة: # macOS: pbcopy < ~/.ssh/id_ed25519.pub # Linux: cat ~/.ssh/id_ed25519.pub # ثم انسخ المخرجات يدوياً # Windows (Git Bash): clip < ~/.ssh/id_ed25519.pub
6. إضافة مفتاح SSH إلى GitHub: 1. انتقل إلى GitHub.com وسجل الدخول 2. انقر على صورة ملفك الشخصي ← Settings 3. انقر على "SSH and GPG keys" في الشريط الجانبي 4. انقر على "New SSH key" 5. أعطه عنواناً (مثل: "My Laptop") 6. الصق مفتاحك العام 7. انقر على "Add SSH key" 7. اختبر اتصال SSH: ssh -T git@github.com # رسالة النجاح: Hi username! You've successfully authenticated...

رموز الوصول الشخصية (PAT)

رموز الوصول الشخصية هي بديل لـ SSH لمصادقة HTTPS:

متى تستخدم PATs: - المصادقة باستخدام HTTPS بدلاً من SSH - استخدام GitHub API - الوصول إلى GitHub من النصوص/الأدوات - عندما يتم حظر SSH بواسطة جدار الحماية إنشاء رمز وصول شخصي: 1. GitHub.com ← Settings ← Developer settings 2. انقر على "Personal access tokens" ← "Tokens (classic)" 3. انقر على "Generate new token" ← "Generate new token (classic)" 4. أعط الرمز اسماً وصفياً 5. حدد تاريخ انتهاء الصلاحية (30/60/90 يوماً أو مخصص) 6. حدد النطاقات (الأذونات): - repo: التحكم الكامل في المستودعات الخاصة - workflow: تحديث سير عمل GitHub Actions - admin:org: إدارة المنظمة 7. انقر على "Generate token" 8. انسخ الرمز فوراً (لن تراه مرة أخرى!) استخدام الرمز: # عندما يُطلب منك كلمة المرور، استخدم الرمز بدلاً من ذلك git clone https://github.com/username/repo.git Username: your_username Password: paste_your_token_here
تحذير أمني: تعامل مع رموز الوصول الشخصية مثل كلمات المرور. لا تلتزم بها أبداً في المستودعات أو تشاركها. قم بتخزينها بشكل آمن (يُنصح بمدير كلمات المرور).

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

تضيف 2FA طبقة إضافية من الأمان إلى حساب GitHub الخاص بك:

إعداد 2FA: 1. GitHub.com ← Settings ← Password and authentication 2. انقر على "Enable two-factor authentication" 3. اختر طريقة المصادقة: - تطبيق المصادقة (موصى به) - رسائل SMS النصية استخدام تطبيق مصادقة: 1. قم بتنزيل تطبيق (Authy، Google Authenticator، 1Password) 2. امسح رمز QR بالتطبيق 3. أدخل الكود المكون من 6 أرقام للتحقق 4. احفظ رموز الاسترداد في مكان آمن! ملاحظات مهمة: - احفظ رموز الاسترداد! (اطبعها أو مدير كلمات المرور) - ستحتاج إلى رمز 2FA في كل مرة تسجل فيها الدخول - لا تزال PATs تعمل مع تمكين 2FA - بعض عمليات Git تتطلب PAT بدلاً من كلمة المرور
أفضل ممارسة: قم بتمكين 2FA فوراً بعد إنشاء حسابك. يزيد بشكل كبير من أمان الحساب ومطلوب للعديد من المنظمات.

تكوين Git لـ GitHub

قم بتكوين Git بمعلومات حساب GitHub الخاص بك:

# حدد اسمك (استخدم اسم GitHub الخاص بك) git config --global user.name "Your Name" # حدد بريدك الإلكتروني (استخدم بريد GitHub الخاص بك) git config --global user.email "your_email@example.com" # حدد اسم الفرع الافتراضي إلى main git config --global init.defaultBranch main # حدد المحرر الافتراضي git config --global core.editor "code --wait" # VS Code git config --global core.editor "vim" # Vim # تحقق من التكوين git config --list

نظام GitHub البيئي والبدائل

بينما GitHub هي الأكثر شعبية، هناك بدائل:

GitHub: - الأكثر شعبية (100 مليون + مستودع) - الأفضل للمصادر المفتوحة - ميزات مجتمع ممتازة - مملوكة من قبل Microsoft GitLab: - ميزات DevOps قوية - CI/CD مدمج - خيار الاستضافة الذاتية - شائع في المؤسسات Bitbucket: - نظام Atlassian البيئي (تكامل Jira) - جيد للمستودعات الخاصة - شائع في بيئات الشركات منصات أخرى: - Gitea (استضافة ذاتية، خفيف الوزن) - SourceForge (منصة قديمة) - Azure DevOps (Microsoft للمؤسسات)

GitHub Desktop و CLI

تقدم GitHub أدوات إضافية بخلاف واجهة الويب:

GitHub Desktop: - عميل Git مرئي - يبسط عمليات Git - رائع للمبتدئين - متاح لـ Windows و macOS - التنزيل: desktop.github.com GitHub CLI (gh): - أداة سطر أوامر لـ GitHub - إدارة المستودعات والقضايا وPRs من الطرفية - التثبيت: cli.github.com # أمثلة أوامر GitHub CLI: gh repo create my-project --public gh issue list gh pr create --title "Add feature" gh pr merge 123

تمرين البدء:

قم بإعداد حساب GitHub الخاص بك:

  1. أنشئ حساب GitHub (إذا لم يكن لديك واحد)
  2. أكمل ملفك الشخصي بسيرة ذاتية وصورة شخصية
  3. أنشئ مفاتيح SSH وأضفها إلى GitHub
  4. اختبر اتصال SSH باستخدام ssh -T git@github.com
  5. قم بتمكين المصادقة الثنائية
  6. قم بتكوين Git باسمك وبريدك الإلكتروني على GitHub
  7. استكشف المستودعات الرائجة على GitHub
  8. ضع نجمة على مستودع مثير للاهتمام

إضافي: قم بتثبيت GitHub Desktop أو GitHub CLI واستكشف ميزاته.

الملخص

في هذا الدرس، تعلمت:

  • GitHub هي خدمة استضافة سحابية لمستودعات Git مع أدوات التعاون
  • Git هو برنامج التحكم في الإصدارات؛ GitHub هي منصة الاستضافة
  • تقدم GitHub خططاً مجانية مناسبة لمعظم المطورين
  • توفر مفاتيح SSH ورموز الوصول الشخصية مصادقة آمنة
  • تحسن المصادقة الثنائية أمان الحساب بشكل كبير
  • توفر GitHub واجهة ويب وتطبيق سطح مكتب وأدوات CLI
  • تتضمن المنصة إدارة المشاريع وCI/CD وميزات المجتمع
التالي: في الدرس التالي، سنتعلم كيفية إنشاء وإدارة المستودعات على GitHub، بما في ذلك ملفات README والتراخيص وإعدادات المستودع!