Ask Developer Hangout - 43 - Introduction to GIT Source Control with Ahmed Fathalla
Chapters
- مقدمة اللقاء والتعريف بأحمد فتح الله
- لماذا نستخدم Source Control وما يميز Git
- مفاهيم Git الأساسية: Repository وRemote وCommit
- تطبيق عملي: إنشاء مشروع وGit add وcommit
- رفع المشروع إلى Bitbucket وإعداد origin
- جلب تغييرات الفريق: fetch وmerge
- كيف تعمل commits وbranches داخل Git
- إنشاء Branch جديد والتنقل بين الفروع
- مراجعة الكود وPull Request ودمج التغييرات
- Tags والإصدارات وملخص سير عمل Git
- أسئلة ونقاش حول Git وTFS
About this episode
في اللقاء 43 من Ask Developer Hangout، يقدّم المهندس أحمد فتح الله مقدمة عملية لنظام Git، تبدأ بفكرة التحكم في الإصدارات ولماذا يختلف Git الموزّع عن أنظمة السورس كنترول المركزية. عبر عرض في الطرفية، يشرح إنشاء مستودع محلي، تتبع الملفات، والانتقال بين حالات الملف قبل وبعد الإضافة والـcommit، مع استخدام سجل التعديلات لفهم تاريخ المشروع. ثم ينتقل إلى المستودعات البعيدة مثل Bitbucket، ومعنى remote وorigin، وآلية push وfetch وmerge. كما يوضح دور الفروع في عزل العمل على الميزات، وطلبات الدمج لمراجعة الكود، واستخدام tags لتحديد الإصدارات. ويتناول النقاش أن الاعتماد العملي على remote مركزي قد يظل نقطة حساسة رغم طبيعة Git الموزعة.
Discussion highlights
- يشرح أحمد أن الـcommit يمثل لقطة لمجموعة تغييرات، وأن منطقة الـstaging تسمح باختيار ملفات أو تغييرات محددة قبل تضمينها في الـcommit.
- ينصح بالبدء بسطر الأوامر لفهم ما يحدث في Git قبل الاعتماد على الواجهات الرسومية، مع إقراره بوجود أدوات GUI مفيدة لاحقاً.
- يفرّق بين fetch، الذي يجلب تحديثات الـremote دون دمجها تلقائياً في الفرع المحلي، وmerge الذي يدمج التحديثات في الفرع الحالي.
- يقدّم الفروع كمساحة للعمل على ميزة بمعزل عن الفرع الرئيسي، ثم استخدام pull request لمراجعة التغييرات قبل دمجها؛ ويعتبر العمل المباشر الجماعي على master غير محبذ.
- يناقش الحضور أن Git لا يفرض remote مركزياً، لكن الفرق قد تختار عملياً origin مشتركاً؛ ويمكن إضافة remote آخر كنسخة احتياطية، مع بقاء اعتبارات التكلفة والإدارة.



