GitHub: كودك في السحابة
الدرس 8 من 26 في دورة «البرمجة بالإحساس». مجاني، مع رسوم متحركة واختبار.
Git عندك وGitHub في السحابة
يعمل Git على حاسوبك: كل الـ commits موجودة داخل مجلد المشروع. أما GitHub فهو موقع يحفظ نسخة من هذا المجلد في السحابة، أي على خوادم في الإنترنت. المشروع على GitHub يسمى مستودعًا (repository، اختصارًا repo): مجلد فيه الملفات وكل سجل الـ commits. باختصار: Git هو نقاط حفظك، وGitHub هو السحابة التي تحفظها.
Push وpull
الـ push (أي «الدفع») يعني إرسال الـ commits الجديدة من حاسوبك إلى GitHub. والـ pull (أي «السحب») يعني جلب التغييرات من GitHub التي ليست عندك بعد. مثال: في النهار عدّلت الموقع على حاسوب الجامعة وعملت push. في المساء في البيت تعمل pull على حاسوب آخر فتحصل على أحدث نسخة نفسها. في الرسم يصعد الـ push إلى السحابة وينزل الـ pull.
لماذا تحتاج GitHub
أولًا: نسخة احتياطية. انسكب الشاي على حاسوبك، والكود ما زال سليمًا. ثانيًا: تعمل من أي حاسوب. ثالثًا: الاستضافة، وهي خدمة تعرض موقعك للعالم، مثل Cloudflare أو Vercel. تربطها بالمستودع، وبعد كل push تأخذ الكود وتحدّث الموقع تلقائيًا. هذا هو السهم الجانبي في الرسم. رابعًا: وكلاء الذكاء الاصطناعي يستطيعون العمل مع المستودع أيضًا.
عام أم خاص
المستودع إما عام: يرى الكود أي شخص على الإنترنت، أو خاص: تراه أنت ومن تدعوهم فقط. الفخ أن هناك برامج آلية تفحص المستودعات العامة ليلًا ونهارًا بحثًا عن المفاتيح. تذكر درس المفاتيح؟ إذا وصل ملف .env فيه مفتاح إلى مستودع عام، فاعتبر المفتاح مسروقًا: ألغِه وأنشئ مفتاحًا جديدًا. لست متأكدًا أنك تحتاج مستودعًا عامًا؟ اجعله خاصًا.
README و.gitignore والترخيص
README.md هو الصفحة الرئيسية للمشروع، ويعرضه GitHub أولًا. فيه تكتب ما هو المشروع وكيف يُشغَّل. أما .gitignore فقائمة ملفات يجب ألا يحفظها Git. تضع فيها .env بمفاتيحه، وnode_modules، وهو مجلد المكتبات المحمّلة (كود جاهز كتبه آخرون) ويسهل تحميله من جديد. وأمر أخير: كود الآخرين على GitHub لا يُستخدم إلا حسب شروط ترخيصه.
اختبر نفسك
- ماذا يفعل الـ push؟
الإجابة الصحيحة: يرسل الـ commits الخاصة بك إلى GitHub. الـ push يرسل الـ commits من حاسوبك إلى السحابة. أما جلب التغييرات من السحابة إليك فهو pull. - لماذا لا يجوز وضع ملف .env بمفتاح في مستودع عام؟
الإجابة الصحيحة: برامج آلية تفحص المستودعات العامة وستسرق المفتاح. الكود العام يراه الجميع، ومنهم برامج تبحث عن المفاتيح. إذا وصل مفتاح إلى هناك فألغِه وأنشئ غيره. - ماذا يُكتب في ملف .gitignore؟
الإجابة الصحيحة: الملفات التي يجب ألا يحفظها Git. في .gitignore تُذكر الملفات التي يتجاهلها Git مثل .env وnode_modules. أما وصف المشروع فمكانه README.