تقني1 هو منصة عربية متخصصة في تقديم محتوى احترافي في مجالات الذكاء الاصطناعي، البرمجة، والتحول الرقمي. نسعى لتبسيط التقنية بلغة عربية واضحة، وفهم سهل لكل ما هو جديد في عالم التكنولوجيا.
نقدم شروحات موثوقة، ودروس عملية، وتحليلات تساعد الأفراد والمهتمين بالتقنية على تطوير مهاراتهم، وصناعة محتوى رقمي أصيل وفعّال.
يعمل على المنصة فريق من الكتاب والمطورين المتخصصين لتقديم محتوى عربي، دقيق، وسهل الفهم، يواكب المستقبل، ويخدم المستخدم العربي بأفضل صورة ممكنة.

Git و GitHub للمبتدئين: دليلك لإدارة مشاريعك البرمجية باحترافية

Git و GitHub للمبتدئين: دليلك لإدارة مشاريعك البرمجية باحترافية

عالم البرمجة:

تنظيم العمل وإدارة الإصدارات:

هل سبق وأن فقدت تعديلات هامة على مشروعك البرمجي، أو واجهت صعوبة في التنسيق مع فريقك؟ في عالم البرمجة الحديث، حيث تتسارع وتيرة التغيير وتتزايد متطلبات التعاون، يصبح تنظيم العمل وإدارة الإصدارات أمرًا بالغ الأهمية. إن الفوضى في إدارة الأكواد يمكن أن تكلفك الوقت والجهد، بل وحتى تؤدي إلى فقدان عملك الشاق. لحسن الحظ، هناك أداتان قويتان ستغيران طريقة عملك إلى الأبد: Git و GitHub. هذا الدليل الشامل سيأخذك خطوة بخطوة لتتقن هاتين الأداتين، ويحولك من مبتدئ إلى محترف في إدارة مشاريعك البرمجية.

Git و GitHub للمبتدئين دليلك لإدارة مشاريعك البرمجية باحترافية
Git و GitHub للمبتدئين دليلك لإدارة مشاريعك البرمجية باحترافية


أ / لماذا يجب أن يتقن المطور Git وGitHub؟ تعرف على الأساسيات:

قبل استخدامهما، من المهم معرفة كيف يعمل Git وGitHub سويًا لإدارة المشاريع البرمجية.. فهم العلاقة بين Git وGitHub أساس لإتقان أدوات تبسط حياة المطورين.

ما هو Git؟ نظام التحكم في الإصدارات (Version Control System)

Git هو نظام مفتوح المصدر وموزع للتحكم في الإصدارات (VCS). تم إنشاؤه في عام 2005 لتتبع التغييرات في الملفات والمشاريع البرمجية بمرور الوقت، مما يضمن سجلًا دقيقًا لكل تعديل يتم إجراؤه. يسمح   

Git للعديد من المطورين بتعديل التعليمات البرمجية بالتوازي دون تضارب، مع إمكانية العودة دائمًا إلى الإصدارات الأقدم من التعليمات البرمجية متى دعت الحاجة. هذا يقلل من مخاطر فقدان البيانات أو التغييرات غير المرغوبة، ويوفر أمانًا عاليًا من خلال تتبع كل تغيير بدقة.   

يتميز Git بعدة خصائص أساسية:

العمل بلا اتصال (Offline): يمكن استخدامه بكامل وظائفه دون الحاجة إلى اتصال بالإنترنت، حيث يحتفظ كل مطور بنسخة كاملة من المستودع على جهازه المحلي.   

دعم الفروع (Branches): يتيح إنشاء مسارات تطوير منفصلة (فروع) لإجراء تغييرات على الأكواد دون التأثير على النسخة الرئيسية للمشروع، مما يسهل التجريب وتطوير الميزات الجديدة.   

تتبع التاريخ (Track History): يحتفظ بسجل كامل ومفصل لجميع التغييرات التي طرأت على المشروع، بما في ذلك من قام بالتغيير ومتى ولماذا.   

تطوير موزع (Distributed Development): كل مطور لديه نسخة كاملة من المستودع، مما يعني أن العمل يمكن أن يستمر حتى لو تعطل الخادم المركزي أو انقطع الاتصال بالإنترنت.   

ما هو GitHub؟ منصة التعاون السحابية (Cloud Collaboration Platform)

بينما Git هو الأداة الأساسية للتحكم في الإصدارات، فإن GitHub هي منصة إلكترونية مبنية على Git، وتستخدمه لتطوير البرمجيات وإدارة المشاريع بشكل فعال. تأسست   

GitHub في عام 2008 كشركة تقدم أدوات وخدمات تتكامل مع Git، لتوسع وظائفه الأساسية وتجعله أكثر سهولة في الاستخدام والتعاون. يمكن النظر إلى   

GitHub كمنصة توفر خدمة استضافة لمستودعات Git عبر الإنترنت، مما يوفر مكانًا مركزيًا لتخزين الأكواد البرمجية وإدارتها، سواء كانت لمشروع فردي أو لفريق.   

تقدم GitHub مجموعة غنية من الميزات التي تعزز التعاون وإدارة المشاريع:

استضافة مستودعات Git عبر الإنترنت: توفر مساحة سحابية لتخزين مشاريع Git، مما يجعلها متاحة من أي مكان ولأي شخص لديه الصلاحيات.   

أدوات تعاون متكاملة: تشمل مراجعة الأكواد (Code Reviews) وتتبع الأخطاء (Issues)، مما يسهل التواصل والتفاعل بين أعضاء الفريق حول التغييرات والمشاكل.   

دعم المشاريع مفتوحة المصدر: توفر مستودعات مجانية للمشاريع مفتوحة المصدر، مما يشجع على المساهمات المجتمعية.   

إدارة مشاريع متكاملة: تتضمن أدوات لتتبع المهام، وتوزيعها، وتحديد المعالم الرئيسية للمشروع.   

كيف يعملان معًا؟ العلاقة التكاملية

GitHub يعتمد على Git، بينما Git يعمل بشكل مستقل عنه. يمكن تشبيه   

Git بالمحرك القوي الذي يدير عملية التحكم في الإصدارات محليًا، بينما GitHub هي لوحة القيادة المتصلة بالسحابة التي تسهل التفاعل مع هذا المحرك على نطاق واسع، وتوفر بيئة للتعاون الجماعي. هذا التكامل يضمن تتبع كل تغيير بدقة، وتنسيق المساهمات بين أعضاء الفريق بسلاسة، وإدارة إصدارات متعددة من المشروع دون حدوث تضارب.   

المصطلحات الأساسية في عالم Git و GitHub

.لفهم Git وGitHub، تعرّف على المصطلحات الأساسية أولًا.

المستودع: يخزن ملفات المشروع وتاريخه الكامل.   

.الالتزام: يسجّل تغييرات المشروع كنقطة مرجعية.   

الفرع (Branch): نسخة منفصلة من المشروع حيث يمكن للمطورين العمل على ميزات أو إصلاحات جديدة دون تعطيل المشروع الرئيسي.   

الدمج (Merge): عملية توحيد التغييرات من فروع مختلفة ودمجها في فرع واحد.   

الدفع (Push): أمر يستخدم لإرسال التزاماتك المحلية إلى المستودع البعيد على GitHub.   

السحب (Pull): أمر يستخدم لجلب التغييرات من المستودع البعيد على GitHub إلى المستودع المحلي الخاص بك.   

هل واجهت تحديات في إدارة مشاريعك البرمجية قبل التعرف على Git و GitHub؟ شاركنا تجربتك في التعليقات أدناه، وكيف ساعدتك هذه الأدوات في التغلب عليها!

ب / خطواتك الأولى مع Git: من التثبيت إلى أول التزام (Commit):

بعد فهم الأساسيات، حان الوقت للانتقال إلى الجانب العملي والبدء في استخدام Git على جهازك. هذه الخطوات الأولية ستضعك على الطريق الصحيح لإدارة مشاريعك البرمجية بفعالية.

تثبيت Git على جهازك

الخطوة الأولى هي تثبيت Git على نظام التشغيل الخاص بك. تتوافر حزم تثبيت لجميع أنظمة التشغيل الرئيسية: OSX، Windows، وLinux. بعد التثبيت، يمكنك التحقق من نجاح العملية بفتح سطر الأوامر وكتابة الأمر   

git.   

تهيئة مشروعك: إنشاء مستودع Git محلي

لبدء تتبع التغييرات في مشروعك، يجب أولاً تهيئة مستودع Git محلي داخل مجلد المشروع. ابدأ مشروعك بإنشاء مجلد جديد باستخدام mkdir وادخل إليه بـ cd. داخل المجلد، استخدم الأمر   

git init لتهيئة مستودع Git جديد. هذا الأمر يحول المجلد الحالي إلى مستودع   

Git قابل للتتبع.

.يعتمد Git على ثلاث مراحل: العمل، المرحلة المؤقتة، وHEAD.

لفهم كيفية تتبع Git للتغييرات، من المهم استيعاب مفهوم "الأشجار" الثلاثة التي يحتفظ بها المستودع المحلي :   

Working Directory (منطقة العمل): المساحة التي توجد فيها ملفاتك الفعلية التي تقوم بتعديلها.

Index (المنطقة المرحلية/Staging Area): منطقة مؤقتة يتم فيها تجميع التغييرات التي قررت "إعدادها" للالتزام التالي.

HEAD: يشير إلى آخر التزام (Commit) قمت به في الفرع الحالي.

إضافة التغييرات: git add

لإعداد الملفات للالتزام (Commit)، يجب أولاً إضافتها إلى المنطقة المرحلية باستخدام أمر git add. هذا الأمر يخبر   

Git بأنك تريد تضمين التغييرات في هذه الملفات في الالتزام التالي.

git add <file_path>: لإضافة ملف معين.

git add.: لإضافة جميع التغييرات في دليل العمل الحالي.   

حفظ التغييرات: git commit

بعد إضافة التغييرات إلى المنطقة المرحلية، يتم حفظها بشكل دائم في تاريخ المستودع باستخدام أمر git commit. الالتزام هو بمثابة "لقطة" أو "نقطة علام" للمشروع في لحظة زمنية معينة. من الضروري دائمًا تضمين رسالة وصفية مع كل التزام باستخدام   

-m "رسالة الالتزام". اكتب رسالة توضح التغييرات التي أجريتها ولماذا.ا. مثال:   

git commit -m "أول التزام: إضافة ملف README.md".   

التحقق من حالة المشروع: git status

لمعرفة حالة الملفات، استخدم الأمر git status. هذا الأمر يوفر لك نظرة عامة فورية على حالة مستودعك، ويوضح الملفات التي تم تعديلها أو إعدادها أو غير المتتبعة.   

ج / الانطلاق نحو التعاون: استخدام GitHub بفعالية:

بينما Git يدير الإصدارات محليًا، فإن GitHub هو بوابتك إلى عالم التعاون ومشاركة الأكواد على نطاق واسع. هذه الخطوات ستمكنك من استضافة مشاريعك عبر الإنترنت والبدء في التفاعل مع الآخرين.

إنشاء حساب على GitHub

الخطوة الأولى لاستخدام GitHub هي إنشاء حساب مجاني على موقع GitHub.com. العملية بسيطة: توجه إلى GitHub.com، اختر "Sign up"، أدخل بياناتك، وأكد حسابك عبر البريد الإلكتروني.   

إنشاء مستودع جديد على GitHub

المستودع هو المكان الذي ستستضيف فيه أكواد مشروعك على GitHub. لإنشاء مستودع جديد:   

بعد تسجيل الدخول، انقر على زر "New repository" أو أيقونة "+" في الزاوية العلوية اليمنى.   

أدخل اسمًا فريدًا ووصفًا اختياريًا للمستودع.   

اختر نوع المستودع: عام (public) أو خاص (private).   

يمكنك اختيار إضافة ملف README.md.   

انقر على "Create repository".   

ربط مشروعك المحلي بـ GitHub: الاستنساخ أو الإضافة

لتحقيق التكامل بين عملك المحلي على Git ووجوده على GitHub، هناك طريقتان:

الخيار 1: الاستنساخ (Cloning) لمستودع موجود على GitHub إذا كان المستودع موجودًا بالفعل على GitHub، يمكنك إنشاء نسخة عمل محلية منه باستخدام الأمر git clone <URL>. هذا الأمر يقوم بتنزيل الملفات وتاريخها ويربط المستودع المحلي تلقائيًا بالبعيد.   

الخيار 2: ربط مشروع محلي بمستودع GitHub جديد إذا بدأت مشروعك محليًا ثم أنشأت مستودعًا فارغًا على GitHub، فستحتاج إلى ربط المستودع المحلي بالبعيد يدويًا باستخدام الأمر git remote add origin <URL>.   

origin هو الاسم التقليدي للمستودع البعيد الأساسي.

رفع التغييرات إلى GitHub: git push

بعد إجراء التغييرات على مشروعك المحلي والالتزام بها (Commit)، حان الوقت لرفع هذه التغييرات إلى المستودع البعيد على GitHub باستخدام أمر git push. هذا الأمر يرسل التزاماتك المحلية إلى المستودع البعيد، مما يجعل عملك متاحًا للآخرين. الصيغة الشائعة هي   

.ادفع التغييرات إلى GitHub باستخدام: git push origin main..   

جلب التحديثات من GitHub: git pull

للحفاظ على مستودعك المحلي محدثًا بأحدث التغييرات التي تمت على المستودع البعيد، استخدم أمر git pull. هذا الأمر يجلب (fetches) جميع التغييرات الجديدة ثم يدمجها (merges) تلقائيًا في فرعك النشط المحلي.   

د / إدارة المشاريع بذكاء: الفروع، الدمج، وطلبات السحب:

بعد الأساسيات، استكشف ميزات Git وGitHub التي تسهّل التعاون والتنظيم.

مفهوم الفروع (Branches): أساس التطوير المتوازي

تعد الفروع (Branches) من أقوى ميزات Git، وهي أساس التطوير المتوازي في المشاريع البرمجية. الفروع تُستخدم لتطوير ميزات جديدة أو إصلاح الأخطاء بشكل معزول عن بعضها البعض وعن النسخة الرئيسية للمشروع. هذا يعني أن المطورين يمكنهم العمل على أجزاء مختلفة من المشروع في وقت واحد دون تضارب. الفرع الرئيسي للمشروع، والذي عادة ما يكون اسمه   

master أو main، هو الفرع "الافتراضي" الذي يمثل النسخة المستقرة والجاهزة للنشر.   

إنشاء الفروع والتبديل بينها

لإنشاء فرع جديد، استخدم الأمر git branch <branch_name>. للتبديل بين الفروع:   

git checkout <branch_name>: للتبديل إلى فرع موجود.   

git checkout -b <new_branch_name>: لإنشاء فرع جديد والتبديل إليه في نفس الوقت.   

git switch: بديل أحدث لـ git checkout للتبديل بين الفروع.   

لعرض جميع الفروع المحلية، استخدم الأمر git branch.   

دمج الفروع (Merging): توحيد التغييرات

بعد الانتهاء من العمل على ميزة أو إصلاح في فرع منفصل، ستحتاج إلى دمج هذه التغييرات مرة أخرى في الفرع الرئيسي.   

انتقل للفرع المطلوب بـ: git checkout main.

نفذ أمر الدمج: git merge <branch_to_merge>.   

في حال حدوث تضاربات (conflicts)، سيتعين عليك حلها يدويًا.   

طلبات السحب (Pull Requests): قلب التعاون على GitHub

تُعد طلبات السحب (أو PRs) ميزة محورية في GitHub، وهي قلب التعاون الفعال في المشاريع البرمجية. طلبات السحب تتيح اقتراح التغييرات ومراجعتها قبل الدمج.   

تتجاوز أهمية طلبات السحب مجرد دمج الكود؛ فهي تمثل الآلية الأساسية لضمان جودة الكود، وتعزيز تبادل المعرفة، وتوثيق عملية اتخاذ القرار.

مراجعة الكود تساعد على تحسين الجودة قبل الدمج.   

مناقشة التغييرات: توفر مساحة للتعليقات المباشرة والمناقشات.   

توثيق القرارات: يتم تسجيل جميع المناقشات والقرارات.   

الدمج الآمن: بعد الموافقة، يمكن دمج الفرع بأمان.   

ميزات GitHub التعاونية المتقدمة لإدارة المشاريع

يوفر GitHub أدوات إضافية لإدارة المشاريع بجودة عالية.

Issues: لتتبع الأخطاء والمهام والاقتراحات داخل المشروع.   

Projects (المشاريع): أداة تتيح إنشاء لوحات مهام مرئية (مثل Kanban boards) لتنظيم المهام.   

GitHub Actions: خدمة لأتمتة العمليات المتكررة في سير عمل التطوير، مثل تشغيل اختبارات الكود تلقائيًا أو نشر التطبيقات (CI/CD).   

تتبع سجل التغييرات: git log وgit show

Git يقدم أوامر تساعدك على تتبع تاريخ المشروع وتغييراته.

git log: يعرض تاريخ الالتزامات ومعلومات المؤلف.، والرسائل.   

git show: يعرض تفاصيل أي التزام، من الرسالة حتى التعديلات.   

هـ / الخاتمة:

.Git وGitHub من أهم أدوات المطورين لإدارة المشاريع باحتراف. يتيح Git إدارة الإصدارات بفعالية على المستوى المحلي، مما يضمن تتبع كل تغيير والقدرة على العودة إلى أي نقطة في تاريخ المشروع. بينما توفر   

GitHub منصة قوية للتعاون السحابي، تسهل العمل الجماعي بسلاسة، وتحسن جودة الكود من خلال مراجعات الأقران، وتوفر أدوات متكاملة لإدارة المشاريع. إن إتقان هاتين الأداتين يفتح آفاقًا واسعة في عالم البرمجة، سواء كنت تعمل على مشاريع فردية أو ضمن فرق تطوير كبيرة.   

نتمنى أن يكون هذا الدليل قد أضاء لك الطريق في رحلتك مع Git و GitHub. الآن حان دورك! ما هي الخطوة الأولى التي ستتخذها لتطبيق ما تعلمته؟ ابدأ الآن، فالمستقبل لا ينتظر. شاركنا أسئلتك، تجاربك، أو أي نصائح إضافية لديك في قسم التعليقات أدناه. تفاعلك يثري مجتمعنا ويساعد الجميع على التقدم! لا تخف من الفشل، فهو جزء من النجاح. كل خطوة صغيرة تقربك من هدفك. 

هل لديك استفسار أو رأي؟

يسعدنا دائمًا تواصلك معنا!

يمكنك إرسال ملاحظاتك أو أسئلتك عبر صفحة [اتصل بنا] أو من خلال البريد الإلكتروني الخاص بنا، وسنكون سعداء بالرد عليك في أقرب وقت.  


أحدث أقدم

نموذج الاتصال