الهدف
بنهاية الدرس عندك repo على GitHub، ثلاث commits، branch منفصل، و PR اندمج — وفهمت ليش كل خطوة موجودة.
ليش هذا الحين؟
ترى code بدون version control = كود معلّق بخيط. كل مرة تعدّل ملف وبعدين تكتشف إنك كسرت شي، تقعد ساعات تحاول تتذكر شنو غيّرت. Git هو الـ time machine اللي يسترجع أي نسخة سابقة. و GitHub هو المكان اللي يعيش فيه الكود بأمان — مو على laptop بس.
الفكرة
Git = time machine للكود. كل commit = snapshot من كل الملفات في هاللحظة. تقدر ترجع لأي snapshot في أي وقت.
5 commands تغطي 90% من عملك:
git add . # رتّب التغييرات للـ commit
git commit -m "" # خذ snapshot مع رسالة
git push # ارفع لـ GitHub
git pull # نزّل آخر التغييرات من GitHub
git status # شوف وضع الـ repo الحين
Branches = timelines موازية:
main= النسخة الرئيسية — اللي على productionfeature/login= timeline منفصل تبني فيه ميزة- لما تخلص، تدمج الـ branch في
mainعبر Pull Request
Pull Request (PR) = طلب دمج. في الشركات، شخص ثاني يراجع الكود قبل الدمج. حتى لو وحدك، الـ PR يخليك تراجع شغلك قبل ما يطلع على production.
Mental model:
main: ──●──●──────────────────●──→
\ /
feature: ●──●──●──●────