مزامنة Git مع GitHub

1 دقيقة

جدول المحتويات

  1. المزامنة محلي ↔ GitHub
  2. إعداد سريع
  3. سير عمل الدفع/السحب
  4. إدارة التعارضات
  5. أوامر أساسية

1. المزامنة محلي ↔ GitHub

الهدف: إبقاء شفرتك المحلية متزامنة مع GitHub.

المشكلة:

  • تبرمج محلياً
  • يعدّل الفريق على GitHub
  • كيف تبقى محدَّثاً؟

الحل: الدفع (أنت → GitHub) والسحب (GitHub → أنت)

العودة إلى جدول المحتويات

2. إعداد سريع

bash
mkdir demo-github-sync && cd demo-github-sync
git init

echo "print('v1')" > app.py
echo "# Demo GitHub Sync" > README.md
git add . && git commit -m "Initial commit"

# الربط بـ GitHub (استبدل بمستودعك)
git remote add origin https://github.com/ton-username/demo-repo.git

# أول دفع
git push -u origin main

هذا كل شيء! شفرتك على GitHub.

العودة إلى جدول المحتويات

3. سير عمل الدفع/السحب

سيناريو نموذجي:

الدفع: أنت → GitHub

bash
# تعدّل محلياً
echo "print('v2 updated')" > app.py
git add . && git commit -m "Update to v2"

# الإرسال نحو GitHub
git push origin main

السحب: GitHub → أنت

bash
# استرجاع تغييرات الفريق
git pull origin main

# أو على مرحلتين:
git fetch origin    # تنزيل بلا دمج
git merge origin/main    # الدمج بعد ذلك

سير العمل اليومي

bash
# صباحاً: استرجاع عمل الفريق
git pull

# النهار: تطوّر
echo "print('new feature')" >> app.py
git add . && git commit -m "Add feature"

# مساءً: دفع عملك
git push

العودة إلى جدول المحتويات

4. إدارة التعارضات

تعارض = أنت وزميل تعدّلان السطر نفسه.

محاكاة تعارض:

bash
# زميل عدّل app.py على GitHub
# وأنت أيضاً محلياً
echo "print('my version')" > app.py
git add . && git commit -m "My changes"

git pull    # تعارض!

الحل:

bash
# Git يعرض التعارض في app.py:
# <<<<<<< HEAD
# print('my version')
# =======
# print('colleague version')
# >>>>>>> abc123

# حرّر الملف لتُبقي ما تريد:
echo "print('merged version')" > app.py

# إنهاء الحل:
git add app.py
git commit -m "Resolve conflict"
git push

حُلّ التعارض! يسترجع الفريق نسختك المدموجة.

العودة إلى جدول المحتويات

5. أوامر أساسية

الأمرالإجراء
git clone <url>نسخ مستودع GitHub
git remote add origin <url>الربط بـ GitHub
git push -u origin mainأول دفع (مع التتبّع)
git pushإرسال إيداعاتك
git pullاسترجاع + دمج
git fetchاسترجاع بلا دمج
git statusعرض حالة المزامنة

سير العمل الأساسي:

  1. git pull (الاسترجاع)
  2. التطوير + git add + git commit
  3. git push (المشاركة)
  4. كرّر!

مزامنة GitHub = تنفّس المطوّر: سحب → شفرة → دفع!

العودة إلى جدول المحتويات