الدرس 8 من 8

Git و GitHub

أهم أداة في شغل أي مبرمج بعد اللغة نفسها.

المشكلة

أكيد عملت قبل كده ملفات اسمها project_final.py و project_final2.py و project_final_REAL.py. Git بيحل ده: بيحفظ كل نسخة من مشروعك بتاريخها ووصف اللي اتغير، وتقدر ترجع لأي نسخة في أي وقت.

Gitالبرنامج اللي على جهازك وبيسجل تاريخ التغييرات.
GitHubموقع بترفع عليه المشروع أونلاين عشان تشاركه وتشتغل مع غيرك.

الـ ٣ مراحل

فكّر فيها زي تجهيز شحنة: الأول بتعدل الملفات (Working directory)، بعدين تختار الحاجات اللي هتتشحن وتحطها في الكرتونة (Staging بـ git add)، وبعدين تقفل الكرتونة وتكتب عليها وصف (Commit).

أول مرة: عرّف نفسك

terminal
git config --global user.name "Ahmed Ali"
git config --global user.email "ahmed@example.com"

الشغل اليومي

terminal
git init                       # start tracking this folder (once)
git status                     # what changed?
git add main.py                # stage one file
git add .                      # stage everything
git commit -m "Add pricing module"   # save a snapshot with a message
git log --oneline              # show history
💡 رسالة commit كويسةاكتب اللي عملته بوضوح في جملة قصيرة: Fix VAT rounding bug أحسن بكتير من update أو asdf. انت بعد شهرين هتشكر نفسك.

ملفات متترفعش أبداً (.gitignore)

.gitignore
venv/            # the virtual environment (huge, rebuild with requirements.txt)
__pycache__/     # Python cache files
.env             # secrets: API keys, passwords
*.csv            # large data files (optional)
⚠ خطر حقيقي: متترفعش مفاتيح الـ APIلو رفعت ملف فيه API key على GitHub عام، في bots بتدور على الحاجات دي طول الوقت وممكن تستخدمه وتصرف من حسابك. حط المفاتيح في ملف .env وضيفه لـ .gitignore من أول يوم.

ارفع المشروع على GitHub

terminal
# 1. Create an empty repo on github.com, then:
git remote add origin https://github.com/USERNAME/shop.git
git branch -M main
git push -u origin main

# After that, every time you commit:
git push

الـ Branches: جرّب من غير ما تبوظ

الـ branch نسخة موازية من المشروع تجرب فيها ميزة جديدة. لو نجحت تدمجها في main، ولو فشلت ترميها والأصل سليم.

terminal
git switch -c add-discounts     # create a new branch and move to it
# ... edit files, add, commit ...
git switch main                 # back to main
git merge add-discounts         # bring the new feature into main
🤖 GitHub هو الـ CV بتاعكفي مجال الـ AI، الشركات بتبص على GitHub بتاعك أكتر من الشهادات. كل مشروع هتعمله من هنا ورايح ارفعه، ومعاه ملف README.md بيشرح المشروع بيعمل إيه وإزاي تشغله.
الدرس اللي فات