[0:00]ايه هو جيت هاب وايه الفرق بينه وبين جيت وايه اهميتهم الاثنين للمبرمجين اهلا بكم في فيديو جديد ويلا بينا نقعد ونبدا الفيديو.
[0:16]السلام عليكم ورحمة الله وبركاته. في الفيديو ده إن شاء الله هنتكلم زي ما أنتم واخدين بالكم عن الجيت هاب وايه هو الجيت وايه هو الجيت هاب والفرق ما بينهم واهميتهم للمبرمجين. علشان الصورة توضح لينا في البداية خلونا كده نفترض افتراض إن أنت شغال سوفت وير ديفلوبر أو مطور برمجيات وشغال في شركة ليها علاقة بالوسائط المتعددة أو المالتي ميديا. مطلوب منك إنك تشتغل على مشغل موسيقى بلاير أو اللي هي البلاير اللي موجود على الموبايل عندنا مثلا أي مشغل موسيقى وبالتأكيد مش هتشتغل على المشروع ده لوحدك أنت هيكون معاك الفريق بتاعك الخاص بيك. إزاي بقى هتشتغلوا على تطوير المشغل ده في نفس الوقت كلكم بدون ما يحصل ما بينكم أي مشاكل في التغييرات اللي بتتم. هنا بقى بيجي دور جيت وجيت هاب خلونا الأول نتكلم عن الجيت لأن هو الأساس اللي هنبني عليه بعد كده تعريف الجيت هاب. الجيت هو نظام التحكم في الإصدار فيرجن كنترول سيستم. ومن اسمه كده واضح جدا إن هو بيحفظ التغيرات اللي بتتم على الإصدارات المتعددة من المشروع أو البرنامج اللي أنت شغال عليه. وده هياخدنا لأول ميزة موجودة في الجيت أول ميزة فكرة الهيستوريكال باك ابس. يعني لو أنت عندك مثلا مشروع المشغل الموسيقى اللي احنا قلنا عليه ده ومحتاجين نزود فيه ميزة معينة أول ما تزود فيه الميزة دي فأنت بيكون عندك زي تشيك بوينت كده أو حبيت مثلا في وقت ما ترجع للإصدار اللي قبل كده وشايف إن الفيشر دي مش مناسبة أو فيها مشاكل ومحتاج تعدل عليها فمحتاج إن أنت الإصدار اللي قبل كده يتاح للناس لحد ما تغير التغييرات دي مثلا فأنت عندك الميزة دي. لأن هو بيحتفظ بنسخة من كل تقدم في المشروع وده اللي بيسمى الهيستوريكال باك اب. خلونا نوضحها بشكل أسهل شوية. يعني الموضوع عامل زي زرار السيف أز الموجود في كل البرامج وليكن مثلا أنت شغال على ملف مشروع في برنامج معين وورد أو فوتوشوب أو أي أي برنامج فيه ميزة السيف أز.
[2:20]أنت معاك النسخة الأصلية اللي أنت شغال عليها بالفعل طيب عملت بعض التعديلات ومحتاج إنه يكون معاك نسخة موجودة اللي هي الأصلية بدون تعديلات ومحتاج إنه يكون معاك النسخة الجديدة اللي هي الأصلية زائد التعديلات فبتروح تعمل كنترول اس أو كنترول شيفت اس علشان تعمل سيف أز. سيف أز بيتيح إن أنت النسخة الأصلية اللي أنت اشتغلت عليها ما تتأثرش تماما وبيديك نسخة جديدة تشمل النسخة الأصلية زائد التغييرات اللي أنت قمت بيها دي فكرة الهيستوريكال باك اب بالضبط الموجودة في الجيت.
[2:54]بيحفظ الإصدارات بتاعة البرنامج أي تغيير بيتم بيطبق على البرنامج أو على المشروع بتاعك ولكن بتقدر ترجع للنقطة اللي كان فيها المشروع ده قبل ما تتم إضافة هذه الميزة. تاني حاجة إنه هو التيم بيزد ديفلوبمنت. بمعنى إنه هو بيسمح لفريق أو مجموعة من المطورين للعمل على نفس المشروع في نفس الوقت بدون ما يحصل ما بينهم أي تعارض في التغييرات اللي كل واحد بيعملها. وبعد ما كل واحد بيخلص التغييرات والتعديلات بتاعته دي بيتم دمجها مع النسخة الأصلية أو الأساسية للمشروع علشان الناس تقدر تستخدمها وبرضه تشتغل عليها. زي ما قلنا أنت دلوقتي شغال في شركة مطلوب منك أنت والفريق بتاعك تعمل مشغل موسيقى في واحد من الفريق عندك اقترح إنه هو يعمل ميزة إن هو يعمل بلاي ليست اليوزر يقدر يعمل بلاي ليست ويسمع مجموعة من التراكات أو الموسيقى ورا بعضها بالترتيب اللي هو يختاره. فدي ميزة فيتشر موجودة في البرنامج هيعمل إيه المفروض إنه هو يشتغل على التحديث ده على النسخة الموجودة عنده هو النسخة بتاعته هو وبعد ما يعمل التغييرات دي والتحديثات دي على النسخة اللي معاه بيقدر يرفع بعد كده التغييرات دي ويطلب إن هي يتم دمجها في المشروع الأساسي لو هي مناسبة طبعا والناس وافقت عليها. وبعد ما يتم رفع النسخة دي بالميزة الجديدة يقدر كل واحد في الفريق يشتغل ويكمل تطوير بدون أي مشاكل خالص بتحصل أو تعارض ما بين التغييرات اللي حصلت والتغييرات اللي كانت موجودة. الحاجة الثالثة هو الكوماند لاين. الجيت هو عبارة عن حاجة بتتعامل معاها عن طريق الكوماند لاين ولو أنت من مستخدمي لينكس أو ماك ففي الغالب هتلاقي الجيت موجود عندك بالفعل. أما لو أنت من مستخدمي الويندوز فبتضطر إن أنت تروح على الموقع بتاع جيت وتنزله وبتشتغل عليه عن طريق الكوماند لاين برضه. طبعا في حاجات بتستخدم الجيت وليها جيو أي أو واجهة جرافيكية تقدر تتعامل معاها من خلال الماوس. ولكن دايما بالنسبة للناس اللي بتتعامل مع البرمجة لا ينصح إن أنت تستخدم حاجة فيها جيو أي وإن أنت كل حاجة بتعملها تكون بتعملها عن طريق الكوماند لاين لأن ده أولا ظريف جدا ولذيذ على عكس ما الناس متخيلة.
[5:01]زائد إن هو بيطور مهاراتك أكتر في الكتابة وبيبقى مور لوجيكال بالنسبة ليك كمبرمج يعني. الحاجة اللي بعد كده إن هو ترنك بيزد ديفلوبمنت. يعني إيه الكلام ده. تعالوا نتخيل مع بعض جذع شجرة والجذع ده هو الكود الرئيسي للبرنامج. والجذع ده طالع منه أكتر من فرع ممكن نعتبر إن كل تغيير أحد العاملين على المشروع بيعمله هو عبارة عن التفرعة دي والتفرعة دي بتقدر ترجعها تاني للجذع الرئيسي وممكن أكتر من حد في المشروع يعمل الكلام ده. بدون ما يأثر على الكود الرئيسي اللي هو الجذع الرئيسي وبدون ما يحصل أي تعارض ما بين الإجراءات أو التغييرات اللي هم الاثنين أو أكتر من حد بيعملها. أظن كده المفهوم بتاع جيت وضح طيب إيه بقى هو الجيت هاب وإيه علاقته بجيت يلا بينا نشوف الكلام ده. جيت هاب هو عبارة عن موقع بيستخدم الجيت ولكن على التخزين السحابي أو الكلاود مش على الجهاز الخاص بيك الجيت هي حاجة تقدر تستخدمها على جهازك المحلي يور لوكال سيرفر. هو نفس المميزات الموجودة في الجيت ولكن في شوية أوبشنز زيادة ظريفة كده بما إن هو موقع ويب وبتاع زي ما قلنا إن أنت دلوقتي لو أنت شغال على مشروع ومعاك النسخة بتاعتك اللي أنت بتطور فيها وشايف إن في فيتشر أو ميزة معينة تقدر ترفعها للمشروع ده والناس تقدر تستخدمها. هتضيف الميزة دي بتاعتك على النسخة الموجودة معاك وبعد كده تعمل ريكويست إن هي يتعمل لها ميرج مع النسخة الموجودة بالفعل والناس بعد كده تقدر تستخدمها بدون أي تعارض زي ما قلنا ما بين التغييرات اللي أنت عملتها والتغييرات اللي الناس بتعملها أو النسخة الأصلية الموجودة بالفعل. الميزة الثانية وهي الفورك. فورك يعني إيه. لو مشروعك موجود على جيت هاب ومتاح بوبلك للناس إنها تشوفه ممكن أي حد يعمل منه نسخة أو فورك وياخد النسخة دي ويطور فيها بعيد عنك تماما. يعني ممكن ياخد النسخة بتاعت المشروع ويغير فيها حاجات كتير جدا ويطور المشروع نفسه للأغراض اللي هو عايزها هو بدون ده ما يأثر على النسخة بتاعتك أنت ومن المميزات القوية جدا جدا في جيت هاب هي ميزة اختبار المشاريع. يعني لو أنت عندك مشروع رفعته على جيت هاب ومتاح للناس تقدر أي حد يعمل له اختبار أو يعمل له تيست والمشاكل اللي قابلته يكتبها على المشروع يقول إنه هو قابله مشاكل كذا وكذا بحيث إن أنت والفريق بتاعك تقدروا تشتغلوا على حل المشاكل دي. الشخص ده بيعمل حاجة اسمها نيو ايشيو بيفتح ايشيو جديدة أو مشكلة والفريق بتاعك وأنت وكل الناس اللي شغالين على المشروع بتبدأ تشوف الايشيو دي وتتابعها لحد ما تحل المشكلة أو تفتح نقاش بخصوص الموضوع ده. في حاجات تانية غير جيت هاب بتستخدم الجيت زي جيت لاب ومواقع تانية كتير لو أنت بحثت عن إيه المواقع اللي بتستخدم الجيت هتلاقي أكتر من حاجة غير جيت هاب وجيت لاب كمان. لكن المهم إن احنا نعرف إن التقنية الأساسية والمشتركة بينهم كلهم هي الجيت دلوقتي أظن الصورة كلها وضحت لحضراتكم وعرفتوا يعني إيه هو الجيت وإيه هو الجيت هاب وإيه علاقتهم ببعض. بالمناسبة الجيت هاب اللوجو بتاعه هو اللوجو اللي ورا ده اللي هو في الشاشة جيت هاب طيب لو أنت عايز تتعلم جيت أو جيت هاب بتعمل إيه في مجموعة من الكوماند لاينز بتتعلمها علشان تكتب في الجيت. هي مش كتير هي حاجة حاجات بسيطة خالص تقدر تحفظها أو حتى ترجع لها لما تكون عايز تستخدمها الموضوع بسيط جدا و إن شاء الله هنسيب لكم لينكات للمصادر اللي المفروض تتعلم منها في الديسكربشن تحت. ولكن المصدر اللي نرجحه باللغة العربية هو كورس الجيت والجيت هاب على قناة الزيرو ويب سكول للأستاذ أسامة الزيرو. حاجة ظريفة جدا وجميلة وهو قصير بالمناسبة مش طويل خالص فممكن تخلصه في يوم أو يومين الميزة فيه إن هو مجاني متاح مجانا وبالعربي مش هتحتاج إن أنت يكون الإنجليزي بتاعك يعني كويس عشان تفهم الكلام اللي بيتقال. فبس وصلنا دلوقتي لنهاية الفيديو أتمنى يكون سهل وبسيط كده وخفيف والالفكرة وصلت لكم احنا كنا عاملين خيار ما بين الفيديو ده اللي هو فيديو الجيت هاب والناس اخترته وفيديو تعلم الأطفال البرمجة وناس كتير طلبت وكلمتنا عن تعلم الأطفال البرمجة فمش هنسيبه خالص وبس الفوت كان على أنو ينزل الأول أو أنو نعمله الأول. فدلوقتي فيديو الجيت هاب اللي هو ده نزل واستنوا إن شاء الله قريب جدا فيديو تعلم الأطفال البرمجة. اشوفكم في فيديو جديد وفي رعاية الله.



