دروس البرمجة

أول خطواتك في Git وGitHub: دليل عملي للتحكم بالإصدار والتعاون

تعلم أساسيات Git وGitHub خطوة بخطوة: إعداد، أوامر أساسية، فروع العمل، وطرق التعاون عبر Pull Requests وحل التعارضات بسرعة.

أول خطواتك في Git وGitHub: التحكم بالإصدار والتعاون خطوة بخطوة للمبتدئين [Programming Tutorials > Beginner Guides]

مقدمة سريعة — لماذا تتعلم Git وGitHub؟

إذا كنت مطوّراً أو تدرس البرمجة أو تعمل على مشاريع فردية أو جماعية، فـGit هو أداة التحكم بالإصدار التي سترافقك طوال حياتك المهنية، وGitHub هو منصة مستضافة تُسهّل التعاون، مراجعة الكود، وإدارة الإصدارات. في هذا الدليل العملي ستتمرّن على أساسيات Git محلياً وتتعلم كيف تنشئ وتشارك مستودعات على GitHub، وتتعامل مع الفروع وطلبات الدمج (Pull Requests).

ما الذي ستتعلمه عملياً؟

  • تثبيت Git وإعداد بيانات المستخدم.
  • إنشاء مستودع محلي وربطه بمستودع GitHub.
  • أوامر يومية: add, commit, push, pull، وbranch.
  • تدفق عمل شائع: feature branch + Pull Request.
  • نصائح لرسائل الالتزام وحل التعارضات.

الوقت التقريبي: من 30 دقيقة لتجربة الأوامر الأساسية إلى يوم واحد لتطبيق سير عمل متكامل مع Pull Requests.

البدء العملي — التثبيت والإعداد وإنشاء أول مستودع

1. تثبيت Git

على أنظمة macOS استخدم Homebrew:

brew install git
على Ubuntu/Debian:
sudo apt update
sudo apt install git
على Windows يمكنك تحميل Git for Windows وتثبيته من الموقع الرسمي أو استخدام إدارة الحزم مثل winget.

2. إعداد بيانات المستخدم الأساسية

بعد التثبيت عيّن اسمك وبريدك الإلكتروني (يظهران في سجلات الالتزام):

git config --global user.name "اسمك"
git config --global user.email "email@example.com"

3. إنشاء مستودع محلي

لتحويل مجلد مشروع إلى مستودع Git:

cd path/to/project
git init
git add .
git commit -m "Initial commit"

4. إنشاء مستودع على GitHub وربطها

  1. أنشئ مستودع جديد على GitHub (Public أو Private).
  2. اربط المستودع المحلي بالمستودع البعيد:
git remote add origin git@github.com:username/repo.git  # أو رابط HTTPS
git branch -M main
git push -u origin main

ملاحظة عن SSH vs HTTPS: استخدام SSH يوفر دخولاً بدون كتابة كلمة مرور في كل مرة بعد إضافة مفتاح SSH (الأكثر راحة للمطوّرين). لإنشاء مفتاح SSH:

ssh-keygen -t ed25519 -C "email@example.com"
# ثم انسخ المحتوى من ~/.ssh/id_ed25519.pub وألصقه في GitHub → Settings → SSH and GPG keys

5. ملف .gitignore

أنشئ ملف .gitignore لاستبعاد ملفات النظام والملفات المؤقتة (مثلاً node_modules/, .env, أو ملفات IDE). مثال بسيط:

node_modules/
.env
.DS_Store
dist/
programmer terminal git commands laptop collaboration
صورة: Daniil Komov — Pexels

تدفق العمل اليومي: الفروع، الدمج، وطلبات السحب

1. لماذا نستخدم الفروع (Branches)؟

الفروع تسمح بتطوير ميزات جديدة بالتوازي دون التأثير على الكود المستقر في الفرع الرئيسي (main). عادةً تستخدم فرق العمل نمط feature branch لكل ميزة أو إصلاح.

2. أوامر فروع أساسية

git checkout -b feature/awesome  # إنشاء والانتقال إلى فرع جديد
# بعد التعديل
git add .
git commit -m "feat: add awesome feature"
git push -u origin feature/awesome

3. إنشاء Pull Request

بعد الدفع إلى GitHub، افتح Pull Request لدمج الفرع في main. اطلب مراجعة زميل، اشرح التغييرات، وارفق اختبارات أو لقطات شاشة إن وُجدت.

4. حل التعارضات (Conflicts)

إذا ظهر تعارض عند الدمج، قم بعمل:

git checkout main
git pull origin main
git checkout feature/awesome
git merge main
# حل التعارضات يدوياً في الملفات المتأثرة
git add 
git commit -m "fix: resolve merge conflicts"
git push

5. إرشادات عملية

  • اكتب رسائل التزام واضحة: نوع: وصف قصير — مثلاً feat: add login أو fix: handle null response.
  • اجعل الالتزامات صغيرة ومنطقية لتسهيل المراجعة.
  • استخدم Branch Protection Rules على GitHub لحماية الفرع الرئيسي وفرض مراجعات قبل الدمج.
  • استفد من Issues وProjects لتنظيم العمل وربط الالتزامات بالمهام.

6. ماذا بعد؟ ميزات متقدمة

عندما تتقن الأساسيات، تعلّم Git rebase (بحذر)، العلامات (tags) لإصدارات الإنتاج، وGitHub Actions لأتمتة الاختبارات والنشر.

خاتمة ونصائح سريعة

  • تدرّب بانتظام على سيناريوهات بسيطة — إنشاء فرع، إجراء تغييرات، وفتح Pull Request.
  • اقرأ سجل الالتزامات (git log) لتفهم تاريخ المشروع.
  • استخدم أدوات بصريّة مثل GitKraken أو واجهة Git في VS Code إن رغبت بواجهة رسومية.

إذا رغبت، أستطيع توليد ملف مختصر للـ cheatsheet يحتوي أوامر أساسية قابلة للطباعة أو إنشاء مثال عملي صغير نطبقه خطوة بخطوة على مشروع حقيقي.

إعلان

مقالات ذات صلة

A close-up shot of a hand holding a red label with the word 'Developer' in focus.

بناء أدوات DevOps وCLI عالية الأداء بلغة Rust للنشر على Edge: دليل عملي

تعلم بناء أدوات DevOps وCLI سريعة بRust للنشر على Edge (Wasm/WASI)، مع أمثلة نشر على Cloudflare/Fastly وربطها…

A woman drinks water outdoors after a yoga workout, holding a mat, enjoying fitness in nature.

من الصفر إلى SvelteKit عمليًا: إنشاء موقع محتوى سريع وصديق SEO باستخدام TypeScript وPartial Hydration

دليل عملي لبناء موقع محتوى عالي الأداء وصديق SEO باستخدام SvelteKit وTypeScript، وPartial Hydration لتقليل تحم…

Explore an underwater wreckage surrounded by ocean marine life in Bali's deep blue sea.

بناء microservices عالية الأداء باستخدام Rust وWebAssembly: دليل عملي للنشر على Edge وCDN

دليل عملي لبناء microservices بـRust→WebAssembly ونشرها على Edge/CDN: إعداد، أمثلة بناء، تحسين أحجام WASM، واس…

Explore an underwater wreckage surrounded by ocean marine life in Bali's deep blue sea.

Rust + WebAssembly: بناء ونشر خدمات ويب عالية الأداء وربطها بنماذج الذكاء الاصطناعي

دليل عملي لبناء خدمات ويب باستخدام Rust وWebAssembly، ربطها بنماذج الذكاء الاصطناعي، نشرها على Edge/Server، وق…

A woman stands under a cascading green binary code projection, evoking a cyberpunk aesthetic.

Vibe Coding عمليًا: بناء سير عمل يعتمد على وكلاء برمجية لكتابة واختبار الكود بأمان وجودة

دليل عملي لبناء سير عمل يعتمد على وكلاء برمجية لكتابة واختبار الكود مع ضوابط أمان وجودة، يتضمن أمثلة ونصائح لل…

Close-up of laboratory beakers with a pipette, highlighting scientific research.

من مشروع Python صغير إلى خدمة سحابية مُدارة: تحويل Flask إلى FastAPI + ASGI ونشر عملي

دليل عملي خطوة‑بـ‑خطوة لتحويل تطبيق Flask إلى FastAPI + ASGI، التشغيل مع Uvicorn/Gunicorn، ونشره على VPS/Nginx…