انتقل إلى محتوى الدرس
الدرس 27
دورة Version Control

نسخ المستودعات البعيدة عبر الأمر git cloneGit Clone

انسخ أي مستودع بعيد بكامل سجل التزاماته وإعداد origin التلقائي عبر الأمر git clone، وخصّص اسم المجلد المحلي أو نفّذ النسخ السريع بـ --depth 1.
أقسام الدرس
6
الأمثلة
5
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
0
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

عند الانضمام إلى مشروع قائم أو استكشاف مكتبة مفتوحة المصدر على GitHub، يقع المبتدئون غالباً في خطأ تنزيل المشروع كملف مضغوط ZIP. غير أن الملف المضغوط يخلو تماماً من مجلد .git؛ مما يفقدك سجل الالتزامات والفروع والارتباط بالخادم السحابي.

في المقابل، ينزّل الأمر git clone <url> قاعدة بيانات المستودع كاملةً مع تاريخها وفروعها، ويجهز ملفات العمل داخل مجلد جديد، ويضبط الرابط البعيد origin تلقائياً في خطوة واحدة.

مخطط يوضح الاستنساخ الكامل بـ git clone والربط التلقائي بـ origin وخيار الفرع -b والنسخ الخفيف --depth 1
Shell
# Clone repository over HTTPS into ./web-app folder
git clone https://github.com/closetag/web-app.git
# Or clone using SSH URL format
git clone [email protected]:closetag/web-app.git

ينشئ الأمر git clone افتراضياً مجلداً محلياً يحمل نفس اسم المستودع السحابي مثل web-app. وإذا أردت حفظ النسخة في مجلد باسم مختلف، مرّر الاسم المخصص كمعامل أخير في نهاية الأمر.

Shell
# Clone into a custom folder named client-portal
git clone https://github.com/closetag/web-app.git client-portal
cd client-portal
git status -s

بمجرد اكتمال عملية الاستنساخ والدخول إلى مجلد المشروع، يمكنك تنفيذ git remote -v وgit branch -a لتلاحظ أن Git قد سجّل عنوان المصدر تلقائياً تحت اللقب origin وأنشأ مراجع التتبع البعيدة مثل remotes/origin/main.

Shell
cd client-portal
git remote -v
# origin  https://github.com/closetag/web-app.git (fetch)
# origin  https://github.com/closetag/web-app.git (push)
git branch -a

يفعّل الأمر git clone افتراضياً الفرع الرئيسي للمستودع البعيد مثل main. وعندما يعمل فريقك على فرع تطوير محدد مثل develop، يمكنك تمرير الخيار -b <branch> ليتم التبديل إليه فور انتهاء التنزيل.

Shell
# Clone and immediately check out the develop branch
git clone -b develop https://github.com/closetag/web-app.git
cd web-app
git branch

قد تضم المشاريع الكبيرة عشرات الآلاف من الالتزامات المتراكمة عبر سنوات طويلة. وإذا كنت تحتاج فقط إلى أحدث نسخة من الكود لتشغيل اختبارات البناء السريع أو المعاينة الفورية، فاستخدم الأمر git clone --depth 1 <url> لتنفيذ النسخ الخفيف الذي يجلب آخر التزام فقط.

Shell
# Shallow clone downloading only the latest commit
git clone --depth 1 https://github.com/closetag/app.git fast-app
cd fast-app
git log --oneline

يلخص الجدول التالي الفروق الدقيقة بين أوضاع الأمر git clone ومقارنتها بالأمر git init:

الأمر والصيغةإنشاء سجل .git؟إعداد origin تلقائياً؟حالة الاستخدام الهندسية
git initنعم (مستودع جديد فارغ)لا (يتطلب git remote add)تأسيس مشروع محلي جديد تماماً من الصفر
git clone <url>نعم (كامل التاريخ)نعم (يرتبط بالرابط تلقائياً)تنزيل مستودع بعيد قائم بكامل تاريخه
git clone <url> <dir>نعم (كامل التاريخ)نعم (داخل المجلد المخصص)استنساخ المشروع داخل مجلد محلي باسم مختلف
git clone -b <branch> <url>نعم (كامل التاريخ)نعم (يفعّل الفرع المحدد)بدء العمل مباشرة على فرع غير الفرع الافتراضي
git clone --depth 1 <url>نعم (أحدث لقطة فقط)نعم (سجل خفيف ومختصر)تسريع التنزيل في بيئات الاختبار والمشاريع الضخمة
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

تعرفت في هذا الدرس على الفارق الجوهري بين git clone وتنزيل ملفات ZIP، واستنسخت المستودعات في مجلدات افتراضية ومخصصة، وتحققت من إعداد origin التلقائي واستخدام خيارَي -b و--depth 1. الخطوة التالية: انتقل الآن إلى الدرس 28 «جلب التحديثات ومزامنتها عبر git fetch وgit pull» لمزامنة تعديلات الفريق الجديدة مع مستودعك المحلي.

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 git clone أمر الاستنساخ git clone
الأمر المسؤول عن نسخ مستودع بعيد قائم بكامل تاريخ التزاماته وإعدادات الرابط origin إلى مجلد محلي.
للمراجعة
02 Shallow Clone النسخ الخفيف Shallow Clone
استنساخ المستودع باستخدام الخيار --depth 1 لتنزيل أحدث التزام فقط دون السجل التاريخي القديم.
للمراجعة
03 Default Branch Checkout تفعيل الفرع الافتراضي
الخطوة التلقائية في نهاية الاستنساخ التي تملأ مجلد العمل بملفات الفرع الرئيسي للمستودع البعيد.
للمراجعة
04 Target Directory Argument معامل المجلد الوجهة
مسار اختياري يُمرر بعد عنوان المستودع في أمر git clone لتحديد اسم المجلد المحلي الجديد.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 ZIP ZIP
Zone Information Protocol Archive
صيغة ملفات مضغوطة تفقد مجلد .git وسجل الالتزامات عند تنزيلها يدوياً من المتصفح.
للمراجعة
02 CI CI
Continuous Integration
بيئات التكامل المستمر الآلية التي تعتمد على النسخ الخفيف لتسريع فحص الكود.
للمراجعة
03 URL URL
Uniform Resource Locator
العنوان الشبكي للمستودع البعيد الذي يُمرر لأمر الاستنساخ.
للمراجعة
04 HEAD HEAD
Current Branch Pointer
المؤشر الذي يحدد الفرع الافتراضي المفعّل تلقائياً عقب اكتمال الاستنساخ.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. اكتب أمر git clone الذي ينسخ المستودع السحابي داخل مجلد محلي مخصص باسم my-portal ثم افحص الرابط بـ git remote -v.

  2. استخدم تبويبات المختبر التفاعلي للمقارنة بين الاستنساخ الكامل واختيار الفرع بـ -b والنسخ الخفيف بـ --depth 1.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

10أسئلة 2أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي10 أسئلة تنتظرك
01

لماذا يتفوق تنفيذ الأمر "git clone" على تنزيل ملف "Download ZIP" من GitHub؟

لأن git clone ينزّل قاعدة بيانات .git كاملة مع سجل الالتزامات ويضبط الرابط origin تلقائياً.

02

أي أمر يستنسخ المستودع السحابي داخل مجلد محلي مخصص باسم "portal"؟

تمرير اسم المجلد كمعامل أخير بعد الرابط يحدد اسم المجلد المحلي الجديد.

03

ما اللقب المختصر الذي يضبطه الأمر "git clone" تلقائياً لعنوان المستودع المصدر؟

يسجل الأمر git clone عنوان المستودع المنسوخ تلقائياً تحت اللقب القياسي origin.

04

يجب دائماً تنفيذ الأمر "git init" قبل تشغيل الأمر "git clone".

خطأ؛ فالأمر git clone ينشئ المجلد ويهيئ بداخله مجلد .git تلقائياً دون الحاجة إلى git init.

05

أي خيار يُمرر مع "git clone" لتفعيل فرع محدد مثل "develop" فور انتهاء الاستنساخ؟

يُستخدم الخيار -b متبوعاً باسم الفرع لتفعيله مباشرة عند الاستنساخ.

06

ماذا يحقق تنفيذ الأمر "git clone --depth 1 <url>"؟

ينفذ نسخاً خفيفاً يجلب أحدث التزام فقط دون تنزيل السجل التاريخي القديم بالكامل.

07

يُستخدم النسخ الخفيف (--depth 1) على نطاق واسع في خطوط البناء الآلي CI/CD لتوفير الوقت وعرض النطاق.

صواب؛ لأن خوادم الاختبار الآلي تحتاج غالباً إلى أحدث نسخة من الكود فقط دون التاريخ القديم.

08

بعد استنساخ المستودع والدخول لمجلده، أي أمر يتحقق من عناوين الرابط البعيد المسجلة تلقائياً؟

يعرض الأمر git remote -v رابطَي الجلب والرفع اللذين تم ضبطهما تلقائياً للقب origin.

09

متى يجب عليك استخدام الأمر "git init" بدلاً من الأمر "git clone"؟

يُستخدم git init عند إنشاء مشروع محلي جديد تماماً من الصفر لم يسبق استضافته.

10

يعمل الأمر git clone بنجاح مع كل من روابط HTTPS وروابط SSH.

صواب؛ إذ يقبل الأمر git clone الاستنساخ عبر بروتوكول HTTPS أو بروتوكول SSH.