الدرس 8 من 8
Git و GitHub
أهم أداة في شغل أي مبرمج بعد اللغة نفسها.
المشكلة
أكيد عملت قبل كده ملفات اسمها project_final.py و project_final2.py و project_final_REAL.py. Git بيحل ده: بيحفظ كل نسخة من مشروعك بتاريخها ووصف اللي اتغير، وتقدر ترجع لأي نسخة في أي وقت.
✓ Gitالبرنامج اللي على جهازك وبيسجل تاريخ التغييرات.
✗ GitHubموقع بترفع عليه المشروع أونلاين عشان تشاركه وتشتغل مع غيرك.
الـ ٣ مراحل
فكّر فيها زي تجهيز شحنة: الأول بتعدل الملفات (Working directory)، بعدين تختار الحاجات اللي هتتشحن وتحطها في الكرتونة (Staging بـ git add)، وبعدين تقفل الكرتونة وتكتب عليها وصف (Commit).
أول مرة: عرّف نفسك
git config --global user.name "Ahmed Ali" git config --global user.email "ahmed@example.com"
الشغل اليومي
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)
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
# 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، ولو فشلت ترميها والأصل سليم.
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 بيشرح المشروع بيعمل إيه وإزاي تشغله.