أساسيات Git و GitHub — نشر المواقع والدومينات
أساسيات Git و GitHub
كل منصات النشر الحديثة (GitHub Pages، Netlify، Vercel، Render) تنشر موقعك مباشرة من مستودع Git: ترفع تعديلاً ← يُبنى الموقع ويُنشر تلقائياً. لذلك Git هو الخطوة الأولى.
- Git: برنامج على جهازك يحفظ تاريخ مشروعك (لقطات متتالية).
- GitHub: موقع يستضيف نسخة من مستودعك على الإنترنت للمشاركة والنسخ الاحتياطي والنشر.
المناطق الثلاث
مجلد العمل ──git add──▶ منطقة التجهيز ──git commit──▶ المستودع المحلي ──git push──▶ GitHub
(تعديلاتك) (ما سيدخل اللقطة) (التاريخ)إعداد لمرة واحدة
git config --global user.name "اسمك"
git config --global user.email "you@example.com"بداية مشروع وأول رفع
cd my-site
git init
git status # ما الذي تغيّر؟ (استخدمه كثيراً)
git add .
git commit -m "الصفحة الرئيسية الأولى"
git branch -M main
git remote add origin https://github.com/USERNAME/my-site.git
git push -u origin mainبعدها، العمل اليومي ثلاثة أوامر: git add . ثم git commit -m "..." ثم git push.
رسائل commit جيدة
صِف ماذا ولماذا باختصار: "إضافة نموذج التواصل" أو "إصلاح القائمة على الجوال". تجنب "تعديلات" و "aaa" — ستحتاج هذا التاريخ عندما تبحث عن متى ظهر خطأ.
ملف .gitignore: ما لا يُرفع أبداً
ملف نصي في جذر المشروع يسرد ما يتجاهله Git:
node_modules/
dist/
.env
.env.local
.DS_Store
*.log- node_modules/: ضخم ويُعاد تثبيته بـ npm install.
- dist/: ناتج البناء؛ المنصة تبنيه بنفسها.
- .env: الأسرار (مفاتيح API، كلمات مرور قواعد البيانات).
⚠️ القاعدة الذهبية: لا أسرار في Git
GitHub تُفحص باستمرار بواسطة برامج آلية تبحث عن مفاتيح مسرّبة، وتستغلها خلال دقائق من رفعها.
- إن رفعت مفتاحاً بالخطأ، حذفه في commit جديد لا يكفي: يبقى في التاريخ. الحل الوحيد الآمن: ألغِ المفتاح فوراً من لوحة الخدمة وأنشئ مفتاحاً جديداً، ثم أزل الملف من التتبع (git rm --cached .env) وأضفه إلى .gitignore.
- المستودعات الخاصة ليست مكاناً آمناً للأسرار أيضاً.
- الطريقة الصحيحة لتمرير الأسرار: متغيرات البيئة (الدرس بعد التالي).
الفروع باختصار
git switch -c feature/contact-form # فرع جديد لتجربة ميزة
# ... تعديلات و commits ...
git switch main
git merge feature/contact-formمنصات مثل Netlify و Vercel تنشئ رابط معاينة لكل فرع أو Pull Request، فتجرّب التعديل على رابط حقيقي قبل دمجه في الموقع الرئيسي.
أوامر مفيدة أخرى
| الأمر | الفائدة |
|---|---|
| git log --oneline | التاريخ مختصراً |
| git diff | ما الذي تغيّر بالضبط قبل الإضافة |
| git restore file.html | التراجع عن تعديلات ملف لم تُضف بعد |
| git pull | جلب تحديثات GitHub (عند العمل من أكثر من جهاز) |
| git clone URL | نسخ مستودع موجود |
تمرين
أنشئ مستودعاً لصفحتك الشخصية من دورة HTML/CSS: أضف .gitignore، وارفعه إلى GitHub بثلاثة commits على الأقل برسائل واضحة. ثم أنشئ ملف .env فيه قيمة تجريبية وتأكد بـ git status أنه لا يظهر.
# ===== إنشاء مشروع جديد =====
# 1. افتح المجلد في Terminal
cd my-project
# 2. ابدأ Git
git init
# 3. أضف كل الملفات
git add .
# 4. أول commit
git commit -m "Initial commit - بداية المشروع"
# 5. أنشئ Repository على GitHub
# اذهب لـ github.com → New Repository
# 6. اربط المشروع
git remote add origin https://github.com/username/my-project.git
# 7. ارفع الكود
git push -u origin main
# ===== العمل اليومي =====
# بعد تعديل الملفات
git add .
git commit -m "أضفت صفحة التواصل"
git push
# رؤية حالة الملفات
git status
# رؤية التاريخ
git log --oneline
# ===== ملف .gitignore =====
# أنشئ ملف .gitignore لتجاهل ملفات معينة
# محتوى .gitignore:
node_modules/
.env
.DS_Store
*.log
dist/اختبر فهمك