Git و GitHub للمبتدئين — احفظ كودك وشاركه مع العالم
دليل شامل لتعلم Git و GitHub من الصفر — تثبيت، أوامر أساسية، رفع أول مشروع، والعمل مع الفروع
خلال سلسلة Python، بنيت مشاريع رائعة: آلة حاسبة، تطبيق مهام، وألعاب. لكن هناك سؤال مهم: ماذا لو ضاع الكود؟ ماذا لو أردت مشاركته مع صديق؟ ماذا لو أردت العودة لنسخة سابقة؟
هنا يأتي دور Git و GitHub — الأدوات التي يستخدمها كل مبرمج محترف في العالم.
بنهاية هذا المقال، ستكون قادراً على:
- فهم ما هو Git ولماذا هو أساسي
- تثبيت Git على جهازك
- إتقان الأوامر الأساسية
- إنشاء حساب GitHub احترافي
- رفع مشاريعك على GitHub
- العمل مع الفروع (Branches)
- التعاون مع مبرمجين آخرين
1. ما هو Git؟
التعريف
Git هو نظام للتحكم في الإصدارات (Version Control System) — يتتبع كل تعديل تجريه على كودك.
القياس العملي
تخيل أنك تكتب كتاباً:
- بدون Git: تعدل ثم تحفظ، والنسخة القديمة تُفقد للأبد
- مع Git: كل تعديل يُحفظ كنسخة منفصلة، يمكنك العودة لأي نسخة سابقة
لماذا نحتاج Git؟
| المشكلة | الحل بـ Git |
|---|---|
| ضاع الكود | كل نسخة محفوظة محلياً |
| أفسدت شيئاً | يمكنك العودة لأي نسخة سابقة |
| تريد المشاركة | أرسل نسخة لأي شخص |
| تعمل مع فريق | كل شخص يعمل على فرعه |
| تريد تتبع التغييرات | كل تعديل موثّق بالمكان والوقت |
2. ما هو GitHub؟
الفرق بين Git و GitHub
الكثير يخلط بينهما. الفرق بسيط:
| Git | GitHub |
|---|---|
| برنامج يُثبت على جهازك | موقع إلكتروني على الإنترنت |
| يعمل محلياً بدون إنترنت | يحتاج إنترنت للوصول |
| يحفظ الكود على جهازك | يحفظ الكود في السحابة |
| مجاني ومفتوح المصدر | مجاني للحسابات الشخصية |
القياس:
Git مثل الكاميرا — تصور لحظاتك وتاريخك. GitHub مثل معرض الصور — تعرض فيه إنجازاتك للعالم.
3. تثبيت Git
على ويندوز
- اذهب إلى: git-scm.com
- حمّل النسخة المناسبة لويندوز
- شغّل المُثبّت
- اتبع الخطوات (Next → Next → Finish)
- مهم: اختر Git Bash كمحرر افتراضي
على ماك
الطريقة 1: عبر Homebrew
brew install git
الطريقة 2: مع Xcode
xcode-select --install
التأكد من التثبيت
افتح Terminal أو Git Bash واكتب:
git --version
النتيجة المتوقعة:
git version 2.43.0
4. الإعداد الأولي
إعداد اسمك وبريدك
هذه الخطوة إلزامية — ستُسجل مع كل تعديل تجريه.
git config --global user.name "اسمك الكامل"
git config --global user.email "your.email@example.com"
تحقق من الإعدادات
git config --list
مثال:
git config --global user.name "Jamal Salem"
git config --global user.email "j_a_salem@hotmail.com"
⚠️ مهم: استخدم نفس البريد المسجل في GitHub، وإلا لن تُربط الـ commits بحسابك.
5. الأوامر الأساسية
1. إنشاء مستودع جديد
mkdir my-project
cd my-project
git init
النتيجة:
Initialized empty Git repository in /path/to/my-project/.git/
ما حدث؟ Git أنشأ مجلداً خفياً .git يتتبع كل التغييرات.
2. معرفة حالة المستودع
git status
النتيجة المتوقعة:
On branch main
No commits yet
nothing to commit (create/copy files and use "git add" to track)
3. إضافة الملفات
# إضافة ملف واحد
git add filename.py
# إضافة كل الملفات
git add .
# إضافة نوع معين من الملفات
git add *.py
4. حفظ التغييرات (Commit)
git commit -m "وصف مختصر للتغييرات"
رسالة جيدة:
git commit -m "إضافة دالة حساب المساحة"
رسالة سيئة:
git commit -m "تعديلات" # ❌ غامض
5. عرض سجل التغييرات
git log
النتيجة:
commit a1b2c3d4e5f6...
Author: Jamal Salem <j_a_salem@hotmail.com>
Date: Thu Sep 25 10:30:00 2026
إضافة دالة حساب المساحة
نسخة مختصرة:
git log --oneline
6. إنشاء حساب GitHub
الخطوة 1: التسجيل
- اذهب إلى: github.com
- اضغط Sign up
- أدخل:
- Email: بريدك الإلكتروني
- Password: كلمة مرور قوية
- Username: اسم مستخدم (مثل
jamalsalem79)
الخطوة 2: اختيار الخطة
اختر Free (مجانية) — كافية للمشاريع الشخصية.
الخطوة 3: تأكيد البريد
افتح بريدك، اضغط على رابط التأكيد.
الخطوة 4: إعداد الملف الشخصي
- صورة شخصية
- نبذة (Bio): "مطور Python | مهتم بالذكاء الاصطناعي"
- الموقع: مدينتك
7. ربط Git المحلي بـ GitHub
الخطوة 1: إنشاء مستودع على GitHub
- في GitHub، اضغط + في الأعلى
- اختر New repository
- املأ:
- Repository name:
my-first-project - Description: وصف المشروع
- Public أو Private
- ⚠️ لا تحدد "Add README" (لأننا سنرفع من المحلي)
- Repository name:
- اضغط Create repository
الخطوة 2: ربط المستودع المحلي
GitHub سيعطيك أوامر جاهزة. انسخها:
git remote add origin https://github.com/jamalsalem79/my-first-project.git
git branch -M main
git push -u origin main
الخطوة 3: توثيق الدخول
عند أول push، سيطلب منك GitHub تسجيل الدخول:
- الطريقة 1: كلمة مرور الحساب (مع 2FA)
- الطريقة 2: Personal Access Token (الأفضل)
إنشاء Personal Access Token:
- اذهب إلى: GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
- اضغط Generate new token (classic)
- املأ:
- Note: "Git Local"
- Expiration: 90 days أو No expiration
- Scopes: حدد
repo(كامل)
- اضغط Generate
- انسخ الرمز فوراً (لن يظهر مرة أخرى)
- استخدمه كلمة مرور عند
push
8. سير العمل اليومي
السيناريو الكامل:
# 1. تعديل الملفات في VS Code
# 2. عرض ما تم تعديله
git status
# 3. إضافة الملفات
git add .
# 4. حفظ التغييرات
git commit -m "وصف التعديلات"
# 5. رفع إلى GitHub
git push
مثال عملي:
# عدلت ملف calculator.py
git status
# سيعرض: modified: calculator.py
git add calculator.py
git commit -m "تحسين دالة القسمة"
git push
9. رفع مشاريع Python
إنشاء ملف .gitignore
مهم جداً! لا ترفع كل الملفات. أنشئ ملف .gitignore:
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
venv/
env/
ENV/
# IDE
.vscode/
.idea/
*.swp
# OS
.DS_Store
Thumbs.db
# Environment
.env
.env.local
# Database
*.db
*.sqlite3
إنشاء ملف README.md
هذا أول ملف يراه الزائر. اجعله احترافياً:
# 🐍 اسم المشروع
وصف مختصر للمشروع.
## ✨ المميزات
- ميزة 1
- ميزة 2
- ميزة 3
## 🚀 التشغيل
```bash
python main.py
🛠 التقنيات
- Python 3.12
- Tkinter
- SQLite
📸 صور

📝 الترخيص
MIT License
## 10. الفروع (Branches)
### ما هي الفروع؟
**الفرع** هو نسخة منفصلة من مشروعك، تجرب فيها أفكاراً جديدة دون التأثير على النسخة الأصلية.
### متى تستخدم الفروع؟
<table>
<thead>
<tr>
<th>الموقف</th>
<th>استخدام الفرع</th>
</tr>
</thead>
<tbody>
<tr>
<td>إضافة ميزة جديدة</td>
<td>✅ فرع منفصل</td>
</tr>
<tr>
<td>إصلاح خطأ كبير</td>
<td>✅ فرع منفصل</td>
</tr>
<tr>
<td>تجربة فكرة</td>
<td>✅ فرع منفصل</td>
</tr>
<tr>
<td>تعديل بسيط</td>
<td>لا — مباشرة على main</td>
</tr>
</tbody>
</table>
### الأوامر:
```bash
# عرض الفروع
git branch
# إنشاء فرع جديد
git branch feature-login
# التبديل لفرع
git checkout feature-login
# إنشاء + تبديل في خطوة واحدة
git checkout -b feature-login
# العودة لـ main
git checkout main
دمج الفروع:
# 1. ارجع للفرع الرئيسي
git checkout main
# 2. ادمج الفرع
git merge feature-login
# 3. ارفع التحديث
git push
11. سير العمل مع الفرق
1. نسخ مشروع موجود (Clone)
git clone https://github.com/username/repo-name.git
cd repo-name
2. جلب آخر التحديثات (Pull)
git pull
متى تستخدمها؟ في بداية كل يوم عمل.
3. العمل على فرع خاص
git checkout -b feature/my-feature
# ... تعديلات
git commit -m "إضافة ميزة جديدة"
git push -u origin feature/my-feature
4. Pull Request
في GitHub:
- سيظهر لك زر "Compare & pull request"
- اضغطه
- اكتب وصفاً للتغييرات
- اضغط Create pull request
- انتظر مراجعة الفريق
- بعد الموافقة، اضغط Merge
12. أوامر مفيدة إضافية
| الأمر | الوظيفة |
|---|---|
git diff | عرض الفروقات غير المحفوظة |
git restore file.py | إلغاء تعديلات غير محفوظة |
git reset --soft HEAD~1 | إلغاء آخر commit (مع الاحتفاظ بالتعديلات) |
git stash | حفظ مؤقت للتعديلات |
git stash pop | استعادة التعديلات المحفوظة |
git remote -v | عرض المستودعات المرتبطة |
git config --list | عرض كل الإعدادات |
13. أفضل الممارسات
1. رسائل Commit واضحة
✅ جيدة:
إضافة دالة حساب المساحة
إصلاح خطأ في القسمة على صفر
تحسين أداء البحث
❌ سيئة:
تعديلات
تحديث
شيء جديد
2. Commit صغير ومتكرر
بدلاً من:
- commit واحد بـ 500 سطر
افعل:
- 10 commits، كل واحد يخص ميزة أو إصلاح
الفائدة: سهولة العودة لأي نقطة.
3. استخدم .gitignore
لا ترفع أبداً:
__pycache__/venv/.env- ملفات قواعد البيانات المحلية
4. اكتب README جيد
أول ما يراه زائر مشروعك.
5. استخدم الفروع
لا تعمل مباشرة على main في المشاريع الكبيرة.
14. أخطاء شائعة
الخطأ 1: fatal: not a git repository
السبب: نسيت تشغيل git init أو أنت في المجلد الخطأ.
الحل:
cd project-folder
git init
الخطأ 2: failed to push some refs
السبب: GitHub فيه commits غير موجودة محلياً.
الحل:
git pull --rebase
git push
الخطأ 3: نسيت git add قبل git commit
الحل:
git add .
git commit -m "الرسالة"
الخطأ 4: Commit بـ email خاطئ
السبب: لم تُعِدّ user.email.
الحل:
git config --global user.email "correct@email.com"
# إصلاح commit الأخير
git commit --amend --reset-author --no-edit
git push --force
15. مشروعك الأول على GitHub
رفع آلة حاسبة Python
# 1. اذهب إلى مجلد المشروع
cd python-calculator
# 2. تهيئة Git
git init
# 3. إنشاء .gitignore
# (انظر القسم 9)
# 4. إنشاء README.md
# (انظر القسم 9)
# 5. إضافة كل الملفات
git add .
# 6. حفظ أول commit
git commit -m "النسخة الأولى من الآلة الحاسبة"
# 7. ربط بـ GitHub
git remote add origin https://github.com/username/python-calculator.git
# 8. الفرع الرئيسي
git branch -M main
# 9. رفع
git push -u origin main
بعد الرفع:
افتح GitHub، سترى مشروعك جاهزاً مع:
- ✅ الملفات
- ✅ README.md
- ✅ سجل التعديلات
16. GitHub كسيرة ذاتية
لماذا GitHub مهم؟
| الفائدة | الشرح |
|---|---|
| إثبات مهاراتك | أصحاب العمل يرون كودك الفعلي |
| معرض أعمال | بدلاً من "أعرف Python"، أظهر مشاريعك |
| التعاون | يمكنك العمل مع مبرمجين عالميين |
| المساهمة | ساهم في مشاريع مفتوحة المصدر |
نصائح لـ GitHub احترافي:
- ارفع 5-10 مشاريع على الأقل
- كل مشروع له README واضح
- استخدم أسماء ملفات ذات معنى
- لا ترفع كوداً منسوخاً
- استمر بالتحديث (النشاط الأخضر مهم)
قائمة تحقق — هل تعلمت؟
| المهارة | الحالة |
|---|---|
| تثبيت Git وإعداده | ⬜ |
| إنشاء مستودع محلي | ⬜ |
| إضافة وحفظ التغييرات | ⬜ |
| إنشاء حساب GitHub | ⬜ |
| ربط المحلي بالبعيد | ⬜ |
| رفع مشروع كامل | ⬜ |
| العمل مع الفروع | ⬜ |
| استخدام .gitignore وREADME | ⬜ |
الخلاصة
في هذا المقال، تعلمت:
- ما هو Git — نظام التحكم في الإصدارات
- ما هو GitHub — منصة استضافة الكود
- التثبيت والإعداد — تهيئة Git على جهازك
- الأوامر الأساسية — add, commit, push, pull
- إنشاء حساب GitHub — وربطه بـ Git المحلي
- سير العمل اليومي — من التعديل للرفع
- الفروع (Branches) — تجربة آمنة للميزات الجديدة
- التعاون — Pull Requests والمراجعة
- أفضل الممارسات — رسائل واضحة وcommit صغير
- GitHub كسيرة ذاتية — إظهار مهاراتك للعالم
Git و GitHub ليسا اختياريين — إنهما أساس كل مبرمج محترف.
🎉 نهاية سلسلة Python!
بهذا المقال، أكملنا سلسلة تعلم Python كاملة — من الصفر إلى الاحتراف:
| # | المقال |
|---|---|
| 1 | تثبيت Python على ويندوز وماك |
| 2 | أول برنامج لك بلغة Python |
| 3 | المتغيرات وأنواع البيانات |
| 4 | الشروط (if/else) |
| 5 | الحلقات (Loops) |
| 6 | الدوال (Functions) |
| 7 | 5 مشاريع Python للمبتدئين |
| 8 | بناء آلة حاسبة |
| 9 | بناء تطبيق مهام كامل |
| 10 | Git و GitHub (هذا المقال) |
الآن أنت مبرمج Python حقيقي! 🐍
🎁 هدية خاصة
لإكمال رحلتك، إليك خارطة طريق مقترحة:
المستوى التالي:
- تعلم Flask أو Django — لتطوير الويب
- تعلم Pandas وNumPy — لتحليل البيانات
- تعلم TensorFlow — للذكاء الاصطناعي
- المساهمة في Open Source — على GitHub
- بناء مشروعك الخاص — فكرة تحبها
موادر مفيدة:
- freeCodeCamp — دورات مجانية
- GitHub Explore — مشاريع مفتوحة المصدر
- Real Python — مقالات ودروس
- DeepSeek — مساعد ذكي بالعربية
شكراً لك على متابعة السلسلة كاملة! 🎉
ما المشروع القادم الذي ستبنيه؟ شاركنا في التعليقات!
فريق نهضة
فريق عربي متخصص في التقنية والذكاء الاصطناعي وتطوير الذات
📚 مقالات ذات صلة
بناء تطبيق مهام كامل بلغة Python — مع قاعدة بيانات
دليل عملي لبناء تطبيق إدارة مهام احترافي بلغة Python — مع قاعدة بيانات SQLite وواجهة رسومية Tkinter
بناء آلة حاسبة بلغة Python — مشروع كامل خطوة بخطوة
دليل عملي كامل لبناء آلة حاسبة احترافية بلغة Python — من التخطيط إلى التنفيذ، مع واجهة رسومية بـ Tkinter
5 مشاريع Python للمبتدئين — ابنِ أول أعمالك
5 مشاريع Python عملية للمبتدئين مع الكود الكامل والشرح خطوة بخطوة — ابنِ معرض أعمالك الأول وابدأ رحلتك البرمجية