أدوات Git و GitHub من الأمور المهمة التي يجب على كل مبرمج إتقانها خلال مسيرته في تعلم البرمجة أو خلال مسيرته المهنية.
فإذا كنت تعمل مع فريق لدي شركة ما أو سواء كنت طالبا وتشترك مع زملائك في إنجاز مشروع التخرج الخاص بكم فهذه الأدوات سوف تساعدكم بشكل كبير على إدارة مشروعكم بشكل احترافي وممتاز بحيث يصبح بإمكانكم جميعاً العمل معاً في نفس الوقت على نفس المشروع دون حدوث أي تعارض في التغييرات التي يجريها كل شخص منكم.
والآن هيا بنا نتعرف على هذه الأدوات
ما هو Git
هو عبارة عن نظام عالي الجودة للتحكم في الإصدارات وإدارتها (version control system),من خلاله يمكنك التحكم في إصدارات المشروع الخاص بك. وأنشئ Git لأول مرة عام 2005.
Git is a local system بمعنى أنه يتم تثبيته وصيانته على النظام المحلي وهو الكمبيوتر الخاص بك.
من خلال التحكم في الإصدار فإنه يُمَكِنُك من حفظ التغييرات التي تتم في ملفاتك بمرور الوقت، كما أنه يوفر لك إمكانية استرجاع الإصدارات السابقة من المشروع الخاص بك.
ما هي مميزات Git
من أهم مميزاتGit أنها توفر لك العمل المشترك على المشاريع الخاصة بالبرمجة
- مجاني (غير المكلف)
- مفتوح المصدر
- الاحتفاظ بالنسخ الاحتياطية (historical backups)
إذا كنت تعمل على المشروع الخاص بك ثم أردت أن تضيف بعض المميزات عليه ثم لاحظت بعد تجربتها أن هذه الميزة يوجد بها بعض المشاكل أو غير مناسبة وأردت أن تحذف هذه الميزة في هذه الحالة Git يوفر لك إمكانية استرجاع الإصدار السابق قبل إضافة هذه الميزة.
أي أنه يمكنه الاحتفاظ بنسخه من كل تغيير يحدث في المشروع وتبقي النسخة الأصلية كما هي لا تتغير.
بمعني أنك إذا أجريت أي تغير على المشروع فإن Git في هذه الحالة يوفر لك نسخه أصلية من المشروع بالإضافة إلى نسخه جديدة تتضمن النسخة الأصلية بالإضافة إلى التغييرات التي قمت بها.
- عالي الجودة وسهل الاستخدام
- يمتاز بالسرعة والكفاءة
- التطوير القائم على الفريق (team based development)
من خلال هذه الميزة بإمكان أكثر من شخص العمل معاً في نفس الوقت على نفس المشروع دون أن يحدث بينهم أي تعارض في التغييرات التي يجريها كل شخص.
- trunk based development
هو عبارة عن ممارسة لإدارة التحكم في الإصدار ومن خلالها يقوم مُطَوِرُو البرمجيات بدمج التحديثات الكبيرة والصغيرة إلى Trunk “جذع” أساسي أو فرع رئيسي. كما أنه يبسط مراحل التكامل والدمج.
كما أنه يوجد أنماط تطوير مختلفة، ولكن يعد هذا النمط أكثر انفتاحاً لأن جميع المطورين يمكنهم الوصول إلى الكود الأساسي.
من خلال هذه الأنماط المختلفة يمكن للمطورين العثور على الأخطاء بسهولة أكبر.
- command line
Git يتم التعامل معه بواسطة ال command line, ومن مميزات استخدامه أنها تساعدك علة التعامل مع الأوامر بشكل أعمق كما أنها سريعة الاستجابة وينصح المبرمجين دائماً باستخدامه بدلاً من ال gui.
اقرأ أيضا:أفضل 5 كورسات جافا لتعليم البرمجة للمبتدئين أون لاين
والآن بعدما تعرفنا على Git وهو عبارة عن الأساس الذي سوف نبني عليه تعريف GitHub
هيا بنا الآن لنعرف معاً ما هو GitHub
ما هو GitHub
GitHub هي شركة تم تأسيسها في عام 2008.
كما أن موقع GitHub هو عبارة عن موقع أو قاعدة بيانات تسمح لك بمشاركة المشاريع الخاص بك على الانترنت كما أنه يسهل التعاون باستخدام Git.
من أهم مميزات GitHub أنك إذا تركت المشروع الخاص بك متاحا للجميع (public) فإنك في هذه الحالة تعطي إمكانية للمطورين في جميع أنحاء العالم على تعديل أو تحسين التعليمات البرمجية وتطويرها.
ما هي مميزات GitHub
بالإضافة إلى المميزات السابقة من مميزاته أيضاً
- Fork
تتيح هذه الميزة لأي أحد أخذ نسخة من المشروع والتعديل عليها وتطويرها بما يتناسب مع الأغراض الخاصة به دون أن يؤثر ذلك على مشروعك.
- اختبار المشاريع (Projects test)
عند رفع مشروعك على GitHub يصبح بإمكان أي أحد إجراء اختبار لذلك المشروع وإذا صادفته أي مشكلة يخبرك بها ثم تقوم أنت بإصلاحها.
اقرأ أيضا:ما هي أهمية تعلم البرمجة وكيف تتعلم البرمجة وما هو مفهموم البرمجة ؟(دليل شامل)
ما هو الفرق بين Git و GitHub ؟
Git هو عبارة عن نظام يُستخدم للتحكم في الإصدار ويقوم بحفظ التغييرات التي تتم علي الإصدارات المتعددة من المشروع.
أما GitHub هو عبارة عن المركز الأساسي الذي يتم فيه تجميع كل هذه الإصدارات، ويستخدم التخزين السحابي.
أو هو خدمة لاستضافة مستودع Git ولكي نفهم ما المقصود بخدمة لاستضافة مستودع Git دعنا نتخيل أنك قمت بمشاركة مشاريعك باستخدام Git, هل ستحتاج هذه المشاريع إلى مكان لتبقي فيه؟ بالطبع ستحتاج، لذا من هنا جاء دور GitHub بمعنى أنه موقع تتم فيه تجميع المشاريع التي يتم عملها باستخدام Git.
وبعد ما تعرفنا على الفرق بينهما يجب أن تعرف أنك
لا تحتاج إلى GitHub لاستخدام Git، لكن لا يمكنك استخدام GitHub دون استخدام Git.
كيف أتعلم Git و GitHub
إليك أفضل كورس لتعلم هذه الأدوات وهو مقدم من قناة Elzero Web School
لمشاهدة الكورس
نهاية المقال