المستودعات البعيدة: push وpull وclone
صِل مستودعًا محليًا بـ GitHub، وادفع عمليات commit إلى المستودع البعيد، واسحب تغييرات زملائك، واستنسخ المستودعات الموجودة.
المستودعات البعيدة: push وpull وclone درس مجاني في Frontend Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Frontend Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Frontend Academy 4 دروس في المجموع.
ما هو المستودع البعيد؟
المستودع البعيد هو نسخة من مستودعك مستضافة على الإنترنت، مثل GitHub أو GitLab أو Bitbucket. تتعاون مع أعضاء فريقك بدفع commits إلى المستودع البعيد وسحب commits الخاصة بهم منه.
git clone — نسخ مستودع بعيد
ينشئ git clone url نسخة محلية من المستودع البعيد، بما في ذلك السجل والفروع بالكامل. يُضاف المستودع البعيد تلقائيًا باسم origin.
git clone https://github.com/user/repo.git
git clone git@github.com:user/repo.git # SSHgit remote — إدارة المستودعات البعيدة
يعرض git remote -v المستودعات البعيدة المُعدّة. ويضيف git remote add name url مستودعًا بعيدًا. convention: يُسمّى المستودع البعيد الأساسي origin.
git remote -v
# origin git@github.com:user/repo.git (fetch)
# origin git@github.com:user/repo.git (push)
git remote add origin https://github.com/user/repo.gitgit push — إرسال Commits إلى المستودع البعيد
يرفع git push origin branchname الـcommits المحلية إلى فرع المستودع البعيد. يتطلب أول push لفرع جديد إعداد تتبّع upstream باستخدام -u.
git push origin main
git push -u origin feature/auth # set upstream and push
git push # push to tracked remote (after -u)git pull — استلام Commits من المستودع البعيد
يجلب git pull التغييرات من فرع المستودع البعيد المتبوع ويدمجها في فرعك الحالي. وهو مكافئ لـgit fetch + git merge.
git pull # fetch and merge from tracked upstream
git pull origin main # explicit remote and branchgit fetch — التنزيل دون دمج
ينزّل git fetch جميع التغييرات البعيدة دون تعديل دليل العمل. استخدمه لمعرفة ما أودعه أعضاء الفريق قبل تحديد طريقة الدمج.
git fetch origin
git log origin/main --oneline # inspect remote commits
git merge origin/main # integrate when readyإعداد مفاتيح SSH
يتطلب GitHub المصادقة. يستخدم HTTPS اسم مستخدم + رمزًا مميزًا. وتكون مفاتيح SSH أكثر راحة: أنشئ زوجًا من المفاتيح، وأضف المفتاح العام إلى GitHub، ثم صادق تلقائيًا.
ssh-keygen -t ed25519 -C "your@email.com"
# Public key:
cat ~/.ssh/id_ed25519.pub
# Copy this into GitHub Settings → SSH Keysupstream مقابل origin
يشير origin إلى نسختك المتفرعة. ويشير upstream إلى المستودع الأصلي. عند المساهمة في المشاريع مفتوحة المصدر: أنشئ fork ← نفّذ clone ← أضف المستودع البعيد upstream ← اسحب من upstream للبقاء على اطلاع بآخر التغييرات.
git remote add upstream https://github.com/original/repo.git
git fetch upstream
git merge upstream/mainForce Push — استخدمه بحذر شديد
يستبدل git push --force سجل فرع المستودع البعيد. لا تنفّذ force-push مطلقًا إلى main أو الفروع المشتركة، لأنه يعيد كتابة السجل لدى الجميع. ويكون آمنًا مع فروع الميزات الشخصية التي أُعيد تطبيقها قبل مراجعة PR.
git pull --rebase
يطبّق git pull --rebase الـcommits المحلية فوق الـcommits التي جُلبت، بدلًا من إنشاء commit دمج. وينتج سجلًا أنظف وخطيًا. تضبط فرق كثيرة هذه الاستراتيجية كاستراتيجية pull الافتراضية.
git pull --rebase origin main
# Set as default:
git config --global pull.rebase true.git/config
يوجد إعداد Git المحلي للمستودع في .git/config. ويخزّن عناوين URL للمستودعات البعيدة وفروع التتبّع. أما ~/.gitconfig فيخزّن الإعدادات العامة مثل اسمك وبريدك الإلكتروني.
# ~/.gitconfig
[user]
name = Alice Developer
email = alice@example.com
[core]
editor = code --waitتحقق سريع
ماذا يفعل git push -u origin feature/auth؟
مراجعة: المستودعات البعيدة
ينسخ git clone مستودعًا بعيدًا إلى جهازك محليًا. ويدير git remote عناوين URL البعيدة. ويرسل git push الـcommits. ويجلب git pull التغييرات ويدمجها. وينزّل git fetch التغييرات دون دمجها. استخدم SSH للمصادقة الآمنة. origin هو مستودعك البعيد، وupstream هو المستودع الأصلي في المشاريع مفتوحة المصدر. استخدم Force Push فقط مع الفروع الشخصية غير المُراجعة.
الأسئلة الشائعة
هل درس «المستودعات البعيدة: push وpull وclone» مجاني؟
نعم — نص درس «المستودعات البعيدة: push وpull وclone» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Frontend Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Frontend Academy 4 دروس في المجموع.
ماذا ستتعلم في «المستودعات البعيدة: push وpull وclone»؟
صِل مستودعًا محليًا بـ GitHub، وادفع عمليات commit إلى المستودع البعيد، واسحب تغييرات زملائك، واستنسخ المستودعات الموجودة. تتمرن على Frontend Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Frontend Academy؟
لا تُشترط خبرة سابقة. Frontend Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «المستودعات البعيدة: push وpull وclone»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Frontend Academy هذا؟
نعم. كل درس في Frontend Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- git init وadd وcommit وstatus
- التفرّع: branch وcheckout وmerge
- المستودعات البعيدة: push وpull وclone
- سير عمل Pull Request على GitHub