ميزات GitHub المتقدمة
في هذا الدرس، سنستكشف ميزات GitHub المتقدمة التي تتجاوز وظائف Git الأساسية. يمكن لهذه الأدوات تحسين توثيقك وتعاونك وإدارة مشروعك الشاملة على المنصة.
GitHub Pages - استضافة المواقع
GitHub Pages يسمح لك باستضافة مواقع ثابتة مباشرة من مستودع GitHub الخاص بك مجاناً:
أنواع مواقع GitHub Pages:
1. موقع المستخدم/المنظمة:
- المستودع: username.github.io
- الرابط: https://username.github.io
- النشر من فرع main
2. موقع المشروع:
- أي مستودع
- الرابط: https://username.github.io/repo-name
- النشر من main أو gh-pages أو مجلد /docs
إعداد GitHub Pages:
# الطريقة 1: النشر من فرع main
1. اذهب إلى إعدادات المستودع
2. انتقل إلى قسم Pages
3. اختر "Deploy from branch"
4. اختر "main" و "/ (root)"
5. انقر فوق حفظ
# الطريقة 2: النشر من مجلد /docs
1. أنشئ مجلد docs/ في مستودعك
2. أضف ملفات HTML الخاصة بك إلى docs/
3. في Settings > Pages، اختر "main" و "/docs"
4. سيكون موقعك متاحاً قريباً
# الطريقة 3: استخدام GitHub Actions لعملية البناء
name: Deploy to GitHub Pages
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build site
run: npm run build
- uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./dist
حالات الاستخدام: مواقع المحفظة، توثيق المشروع، المدونات (باستخدام Jekyll)، الصفحات المقصودة، وتوثيق API.
نطاقات مخصصة لـ GitHub Pages:
# إضافة نطاق مخصص
1. أنشئ ملف CNAME في جذر المستودع
2. أضف نطاقك: www.yourdomain.com
3. في Settings > Pages، أضف نطاق مخصص
4. قم بتكوين سجلات DNS مع مزود النطاق الخاص بك:
- النوع: CNAME
- الاسم: www
- القيمة: username.github.io
# تمكين HTTPS (مجاني مع GitHub Pages)
✓ يُقدم تلقائياً عبر Let's Encrypt
✓ حدد "Enforce HTTPS" في الإعدادات
GitHub Gists - مقتطفات الكود
Gists هي طريقة بسيطة لمشاركة مقتطفات الكود أو الملاحظات أو الملفات الصغيرة:
ميزات Gist:
✓ إنشاء gists عامة أو سرية
✓ التحكم في الإصدار لكل gist
✓ تضمين gists في المواقع
✓ فورك ونجمة gists
✓ التعليق على gists
✓ المشاركة برابط فريد
إنشاء واستخدام Gists:
# إنشاء Gist على GitHub.com
1. اذهب إلى gist.github.com
2. أضف اسم الملف والكود
3. اختر "Create public gist" أو "Create secret gist"
# استنساخ Gist
git clone https://gist.github.com/username/gist-id.git
# تضمين Gist في HTML
<script src="https://gist.github.com/username/gist-id.js"></script>
# استخدام GitHub CLI
gh gist create myfile.js --public
gh gist list
gh gist view <gist-id>
gh gist edit <gist-id>
سري مقابل خاص: gists السرية ليست قابلة للبحث لكن يمكن الوصول إليها من قبل أي شخص لديه الرابط. إنها ليست خاصة حقاً لكنها مخفية عن محركات البحث.
مناقشات GitHub
مناقشات GitHub توفر منتدى مجتمعي داخل مستودعك:
ميزات المناقشة:
✓ أسئلة وأجوبة المجتمع
✓ الإعلانات
✓ الأفكار وطلبات الميزات
✓ استطلاعات الرأي
✓ مناقشات مصنفة
✓ وضع علامة على الإجابات كصحيحة
✓ تحويل القضايا إلى مناقشات
تمكين وتنظيم المناقشات:
# تمكين المناقشات
1. اذهب إلى إعدادات المستودع
2. حدد "Discussions" ضمن الميزات
3. تظهر علامة تبويب المناقشة في المستودع
# إنشاء فئات المناقشة
- Q&A: أسئلة المجتمع
- Announcements: تحديثات المشروع
- Ideas: اقتراحات الميزات
- Show and tell: عروض المجتمع
- General: كل شيء آخر
# أفضل الممارسات
✓ تثبيت المناقشات المهمة
✓ إعداد قوالب المناقشة
✓ استخدام العلامات للتنظيم
✓ إدارة المناقشات بشكل نشط
✓ الربط بالمناقشات من README
متى تستخدم: استخدم المناقشات للمحادثات المفتوحة. استخدم القضايا للأخطاء والمهام القابلة للتنفيذ. استخدم PRs لتغييرات الكود.
ويكي GitHub
Wikis توفر مساحة توثيق شاملة لمشروعك:
# تمكين Wiki
1. اذهب إلى الإعدادات
2. حدد "Wikis" ضمن الميزات
3. تظهر علامة تبويب Wiki
# Wiki هو في الواقع مستودع Git
git clone https://github.com/username/repo.wiki.git
# تحرير محلياً، التزم، وادفع
# Wiki يدعم Markdown
- إنشاء صفحات باستخدام Markdown
- الربط بين الصفحات: [[Page Name]]
- إضافة شريط جانبي: _Sidebar.md
- إضافة تذييل: _Footer.md
- إضافة صفحة رئيسية: Home.md
تنظيم محتوى Wiki:
هيكل Wiki الموصى به:
Home.md # الصفحة الرئيسية للويكي
Getting-Started.md # التثبيت والإعداد
User-Guide.md # كيفية استخدام المشروع
API-Reference.md # توثيق API
Contributing.md # إرشادات المساهمة
FAQ.md # الأسئلة الشائعة
Troubleshooting.md # المشاكل والحلول الشائعة
_Sidebar.md # الشريط الجانبي للتنقل
_Footer.md # تذييل مع الروابط
الإصدارات وسجلات التغيير
الإصدارات تحزم برنامجك مع ملاحظات الإصدار والأصول القابلة للتنزيل:
# إنشاء إصدار
1. اذهب إلى Releases > Draft a new release
2. اختر أو أنشئ علامة (مثل v1.0.0)
3. الهدف: عادة فرع main
4. اكتب ملاحظات الإصدار
5. قم بتحميل الملفات الثنائية (اختياري)
6. وضع علامة كإصدار أولي إذا لزم الأمر
7. نشر الإصدار
# الإصدار الدلالي (SemVer)
MAJOR.MINOR.PATCH
- MAJOR: تغييرات كاسرة (2.0.0)
- MINOR: ميزات جديدة، متوافقة للخلف (1.3.0)
- PATCH: إصلاح الأخطاء (1.2.1)
# إصدارات ما قبل الإطلاق
v1.0.0-alpha.1
v1.0.0-beta.2
v1.0.0-rc.1
كتابة ملاحظات إصدار فعالة:
# Release v2.1.0 - New Features and Bug Fixes
## What's New
- Added dark mode support (#234)
- Implemented user profile customization (#245)
- New API endpoint for batch operations (#256)
## Bug Fixes
- Fixed memory leak in data processing (#267)
- Resolved authentication timeout issue (#271)
- Corrected date formatting in exports (#278)
## Breaking Changes
- Removed deprecated `oldFunction()` method
- Changed API response format for /users endpoint
## Upgrade Instructions
See [Migration Guide](link) for upgrade steps.
## Contributors
Thanks to @user1, @user2, @user3 for contributions!
**Full Changelog**: v2.0.0...v2.1.0
مهم: بمجرد نشر إصدار، لا تعدل العلامة المرتبطة أبداً. أنشئ إصداراً جديداً برقم إصدار جديد بدلاً من ذلك.
GitHub CLI (أمر gh)
GitHub CLI يجلب وظائف GitHub إلى محطة الطرفية الخاصة بك:
# تثبيت GitHub CLI
# macOS
brew install gh
# Windows
winget install GitHub.cli
# Linux
sudo apt install gh
# المصادقة
gh auth login
أوامر gh الشائعة:
# عمليات المستودع
gh repo create my-project --public
gh repo clone username/repo
gh repo view
gh repo fork
# إدارة القضايا
gh issue list
gh issue create --title "Bug report" --body "Description"
gh issue view 123
gh issue close 123
# عمليات طلب السحب
gh pr create --title "Feature" --body "Description"
gh pr list
gh pr checkout 456
gh pr review 456 --approve
gh pr merge 456 --squash
# عمليات سير العمل
gh workflow list
gh workflow run ci.yml
gh run list
gh run view 789
# عمليات Gist
gh gist create file.js
gh gist list
gh gist view <id>
# الإصدارات
gh release create v1.0.0 --notes "Release notes"
gh release list
gh release download v1.0.0
زيادة الإنتاجية: أنشئ اختصارات لأوامر gh الشائعة في ملف تعريف shell الخاص بك لتوفير الكتابة: alias gpr="gh pr create"
تطبيق GitHub للجوال
GitHub Mobile يسمح لك بإدارة مشاريعك أثناء التنقل:
ميزات تطبيق الجوال:
✓ مراجعة ودمج طلبات السحب
✓ الرد على القضايا والمناقشات
✓ تصفح الكود مع تمييز بناء الجملة
✓ تلقي الإشعارات
✓ الموافقة على تشغيل سير العمل
✓ إنشاء وتحرير القضايا
✓ التعليق على الكود وPRs
✓ إدارة ملفك الشخصي
متاح على:
- iOS (iPhone/iPad)
- Android
أفضل ممارسات سير عمل الجوال:
مهام الجوال الجيدة:
✓ مراجعة الكود والتعليقات
✓ الموافقة على PRs البسيطة
✓ الرد على القضايا
✓ تصنيف الإشعارات
✓ تعديلات التوثيق السريعة
أفضل على سطح المكتب:
✗ مراجعات الكود المعقدة
✗ حل تعارضات الدمج
✗ كتابة كود كبير
✗ مراجعات إعادة الهيكلة الواسعة
إدارة المنظمة
منظمات GitHub توفر إدارة متقدمة للفريق والمستودع:
# إنشاء منظمة
1. انقر فوق ملفك الشخصي > الإعدادات
2. اختر "Organizations"
3. انقر فوق "New organization"
4. اختر الخطة (Free/Team/Enterprise)
5. قم بتكوين إعدادات المنظمة
ميزات المنظمة:
✓ التحكم في الوصول على أساس الفريق
✓ ملكية مستودعات متعددة
✓ إعدادات على مستوى المنظمة
✓ سجلات التدقيق
✓ إدارة الفوترة
✓ قيود تطبيق OAuth
✓ مشاريع المنظمة
✓ مناقشات المنظمة
أفضل ممارسات إدارة الفريق:
# إنشاء فرق بناءً على الوظيفة
- @org/frontend-team
- @org/backend-team
- @org/devops-team
- @org/security-team
# تعيين أذونات الفريق
- Read: عرض واستنساخ
- Triage: إدارة القضايا وPRs
- Write: الدفع وإنشاء الفروع
- Maintain: إدارة الإعدادات (بدون إجراءات مدمرة)
- Admin: الوصول الكامل بما في ذلك الحذف
# استخدام إشارات الفريق في القضايا/PRs
"@org/frontend-team please review the UI changes"
# تعيين CODEOWNERS حسب الفريق
# ملف CODEOWNERS
*.js @org/frontend-team
*.py @org/backend-team
*.yml @org/devops-team
رعاة GitHub
رعاة GitHub يسمح للمشرفين بتلقي التمويل لعملهم:
# إعداد رعاة GitHub
1. اذهب إلى github.com/sponsors
2. انضم إلى قائمة الانتظار أو قدم طلباً
3. قم بإعداد ملف تعريف الراعي الخاص بك
4. قم بتكوين مستويات الرعاية
5. أضف خيارات التمويل إلى المستودعات
# إضافة .github/FUNDING.yml
github: [username1, username2]
patreon: username
open_collective: projectname
custom: ["https://yourwebsite.com/donate"]
ميزات المستودع المتقدمة
ميزات إضافية تعزز وظائف المستودع:
قوالب المستودع:
- إنشاء هياكل مستودع قابلة لإعادة الاستخدام
- تضمين الملفات والمجلدات الافتراضية
- قوالب المستودعات لأنواع المشاريع الشائعة
مسح الكود:
- الكشف التلقائي عن الثغرات الأمنية
- تحليل CodeQL
- التكامل مع الاستشارات الأمنية
رسم التبعية:
- تصور تبعيات المشروع
- تحديثات التبعيات التلقائية (Dependabot)
- تنبيهات الثغرات الأمنية
رؤى المستودع:
- إحصائيات المساهمين
- تحليلات حركة المرور
- رسوم بيانية لنشاط الالتزام
- تصور تردد الكود
تمرين تطبيقي:
استكشف ميزات GitHub المتقدمة:
- أنشئ موقع GitHub Pages من أحد مستودعاتك
- أنشئ gist عام مع مقتطف كود وقم بتضمينه
- قم بتمكين المناقشات على مستودع وأنشئ فئات
- قم بإعداد Wiki مع 3 صفحات على الأقل وشريط جانبي
- أنشئ إصداراً مع الإصدار الدلالي وملاحظات الإصدار
- قم بتثبيت GitHub CLI وتدرب على 5 أوامر مختلفة
- قم بتنزيل GitHub Mobile وراجع طلب سحب
الملخص
في هذا الدرس، تعلمت عن:
- GitHub Pages لاستضافة المواقع الثابتة والتوثيق
- GitHub Gists لمشاركة مقتطفات الكود والملاحظات
- مناقشات GitHub لمشاركة المجتمع وأسئلة وأجوبة
- ويكي GitHub لتوثيق المشروع الشامل
- إنشاء إصدارات مع الإصدار الدلالي وسجلات التغيير
- GitHub CLI لعمليات GitHub القائمة على الطرفية
- GitHub Mobile لإدارة المشاريع أثناء التنقل
- إدارة المنظمة للتعاون الجماعي
- رعاة GitHub وميزات المستودع الإضافية
التالي: في الدرس التالي، سنستكشف استراتيجيات وسير عمل التعاون الجماعي!