كيفية استخدام أمر git clone على Ubuntu لاستنساخ مستودعات Git بسهولة للمبتدئين

目次

1. المقدمة

في السنوات الأخيرة، أصبح “Git” أداة لا غنى عنها في تطوير البرمجيات والبحوث والمشاريع الشخصية. وبشكل خاص، يُستخدم Git كنظام لإدارة الإصدارات على نطاق واسع حول العالم، وله دور كبير في مشاركة وإدارة الشيفرة المصدرية في مشاريع التطوير الجماعي والمشاريع مفتوحة المصدر.

في هذه المقالة، سنشرح بطريقة سهلة للمبتدئين كيفية استنساخ (clone) مستودع Git باستخدام أمر “git clone” على توزيعة Linux الشهيرة Ubuntu.
أمر “git clone” هو أحد الأوامر الأساسية التي تُستخدم لنسخ مشروع من مستودع بعيد (مثل المشاريع المنشورة على GitHub أو GitLab) إلى بيئتك المحلية بالكامل.

عند إتقان مستخدمي Ubuntu لأمر “git clone”، سيتمكنون بسهولة من تثبيت العديد من البرامج مفتوحة المصدر وبناء بيئة التطوير الخاصة بهم بكفاءة.
بالإضافة إلى ذلك، ستصبح المشاركة في فرق العمل أو المجتمعات التقنية أكثر نشاطًا وسهولة.

تغطي هذه المقالة جميع الخطوات من تثبيت Git، وشرح استخدام أمر “git clone” الأساسي، إلى كيفية التعامل مع الأخطاء الشائعة.
سواء كنت تستخدم Git لأول مرة على Ubuntu، أو لديك خبرة وتريد ترتيب معلوماتك، ستجد هنا ما يفيدك.

2. الشروط المسبقة وإعداد البيئة

لاستخدام “git clone” على Ubuntu، يجب أولًا تثبيت Git على النظام. كما أن إعداد الوصول إلى المستودع البعيد وتجهيز المصادقة أمران مهمان. في هذا القسم نشرح خطوات إعداد البيئة خطوة بخطوة.

2.1 كيفية تثبيت Git

في Ubuntu، يمكنك تثبيت Git بسهولة من المستودعات الرسمية. افتح الطرفية (Terminal) ونفذ الأوامر التالية بالتسلسل:

sudo apt update
sudo apt install git

بعد إتمام التثبيت، تحقق من أن Git تم تثبيته بشكل صحيح عبر عرض رقم الإصدار:

git --version

إذا تم عرض رقم الإصدار، فهذا يعني أن التثبيت ناجح.

2.2 إعداد اسم المستخدم والبريد الإلكتروني

يسجل Git معلومات “من قام بالتغيير ومتى وما الذي تم تغييره” عند إدارة التغييرات. لذلك، عند استخدام Git لأول مرة يجب إعداد اسم المستخدم والبريد الإلكتروني:

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

سيتم تطبيق هذا الإعداد على جميع عمليات Git. إذا أردت تخصيص الإعداد لمشروع معين فقط، نفذ الأوامر بدون --global داخل مجلد المشروع.

2.3 اختيار وتجهيز طريقة المصادقة

عند الوصول إلى مستودع Git بعيد، هناك طريقتان رئيسيتان للمصادقة: “HTTPS” و”SSH”.

  • HTTPS
    تدخل عنوان URL كما في المتصفح. مؤخرًا، تم إيقاف المصادقة عبر كلمة المرور في GitHub وGitLab، ويوصى باستخدام “رمز الوصول الشخصي (PAT)”.
  • SSH
    تستخدم زوج مفاتيح (المفتاح العام والخاص). هذه الطريقة أكثر أمانًا ولا تحتاج لإدخال كلمة المرور في كل مرة بعد الإعداد، لذلك هي المفضلة لمن يستخدم Git بشكل متكرر.

2.4 استخدام Git Credential Manager (GCM) (اختياري)

لإدارة كلمات المرور أو رموز الوصول بأمان وسهولة أكبر، يمكنك استخدام Git Credential Manager (GCM).
يوفر GCM طريقة آمنة لتخزين معلومات المصادقة وتجنب الحاجة لإدخالها في كل مرة. في Ubuntu، يمكنك تثبيته عبر الوثائق الرسمية أو عبر الحزم.

بعد إتمام هذه الخطوات، تكون جاهزًا لاستخدام “git clone” على Ubuntu.
في القسم التالي نشرح كيفية استنساخ المستودعات عمليًا باستخدام الأمر.

3. كيفية استخدام أمر git clone الأساسي

أمر “git clone” هو الأمر الأساسي لنسخ كامل محتويات مستودع بعيد إلى جهازك المحلي. عندما ترغب في استخدام مشروع مفتوح المصدر أو مشروع ضمن فريق، عادة ما تبدأ بتنفيذ هذا الأمر.

3.1 البنية الأساسية للأمر

الاستخدام الأبسط للأمر هو كما يلي:

git clone <رابط المستودع>

على سبيل المثال، لاستنساخ مستودع عام على GitHub:

git clone https://github.com/exampleuser/sample-project.git

عند تنفيذ هذا الأمر، سيتم إنشاء مجلد باسم “sample-project” في الدليل الحالي وتنزيل جميع محتويات المستودع بداخله.

3.2 طريقة الاستنساخ عبر HTTPS

الكثير من الخدمات تدعم الاستنساخ عبر HTTPS، حيث يبدأ الرابط بـ “https://”. قد يُطلب منك إدخال معلومات المصادقة (اسم المستخدم، رمز الوصول الشخصي، إلخ) عند الاستنساخ لأول مرة.

git clone https://github.com/اسم_المستخدم/اسم_المستودع.git

3.3 طريقة الاستنساخ عبر SSH

إذا كنت قد أضفت مفتاح SSH، يمكنك الاستنساخ بأمان ودون الحاجة لإدخال كلمة المرور. رابط SSH يكون بصيغة “git@github.com:”.

git clone git@github.com:اسم_المستخدم/اسم_المستودع.git

لاستخدام SSH يجب إضافة المفتاح العام إلى حسابك في GitHub أو GitLab مسبقًا.

3.4 بنية المستودع بعد الاستنساخ

عند تنفيذ أمر “git clone”، يتم نسخ جميع الملفات والمجلدات وكذلك مجلد “.git” الذي يحتوي على معلومات إدارة الإصدارات.

  • مجلد .git
    يحتوي على سجل التغييرات ومعلومات الإعدادات، ويجعل جميع الملفات في المجلد تحت إدارة Git.
  • مجلد العمل
    يضم الشيفرة المصدرية والملفات التي تعمل عليها عادة.

3.5 انتبه إلى مجلد التنفيذ عند الاستنساخ

ينشئ “git clone” مجلدًا جديدًا في مكان التنفيذ. يُفضل الانتقال إلى مجلد الحفظ المطلوب (cd) قبل تنفيذ الأمر.

4. طريقة استنساخ فرع محدد

قد تحتوي مستودعات Git على عدة فروع. افتراضيًا، يتم استنساخ الفرع الرئيسي (main أو master)، لكن أحيانًا تريد استنساخ فرع معين فقط. يشرح هذا القسم كيفية ذلك.

4.1 استخدام خيار –branch

يمكنك استخدام خيار --branch (أو -b) لتحديد الفرع المراد استنساخه.

git clone --branch اسم_الفرع رابط_المستودع

على سبيل المثال، لاستنساخ فرع “develop”:

git clone --branch develop https://github.com/exampleuser/sample-project.git

سينشئ هذا الأمر مستودعًا محليًا مع تفعيل فرع “develop”.

4.2 الجمع مع خيار –single-branch

افتراضيًا، يستنسخ git clone جميع الفروع. باستخدام --single-branch تحصل فقط على الفرع المحدد، مما يوفر المساحة والوقت خاصة في المستودعات الكبيرة.

git clone --branch اسم_الفرع --single-branch رابط_المستودع

4.3 جلب فروع أخرى بعد الاستنساخ

إذا احتجت لفروع أخرى بعد الاستنساخ، يمكنك تنفيذ:

git fetch --all

ثم للتبديل إلى أي فرع:

git checkout اسم_الفرع

4.4 ملاحظات هامة

  • إذا كان المستودع خاصًا أو محدود الوصول، ستحتاج لمعلومات المصادقة.
  • تأكد من اسم الفرع قبل الاستنساخ لتجنب الأخطاء.

حتى عند الحاجة لاستنساخ فرع معين فقط، يمكنك الاستفادة من مرونة أوامر git clone.

5. الأخطاء الشائعة وطريقة التعامل معها

عند استخدام “git clone” قد تواجه أخطاء مختلفة بسبب المصادقة أو الاتصال أو الصلاحيات. نوضح هنا أكثر الأخطاء شيوعًا وحلولها لمستخدمي Ubuntu.

5.1 خطأ المصادقة عبر HTTPS واستخدام PAT

مؤخرًا، ألغت GitHub وGitLab المصادقة بكلمة المرور لصالح رموز الوصول الشخصي (PAT). عند ظهور رسالة خطأ مثل:

remote: Support for password authentication was removed...
fatal: Authentication failed for 'https://github.com/...'

أنشئ PAT من إعدادات GitHub: Settings > Developer settings > Personal access tokens، واستخدمه بدل كلمة المرور عند الاستنساخ.

5.2 خطأ المصادقة عبر SSH وتسجيل المفتاح العام

عند الاستنساخ عبر SSH، قد تظهر رسالة “Permission denied (publickey)”، وهذا يعني أن مفتاح SSH غير مسجل أو غير صحيح.

【الحل】

  1. أنشئ مفتاح SSH (إذا لم يوجد):
   ssh-keygen -t ed25519 -C "your.email@example.com"
  1. انسخ محتوى المفتاح العام:
   cat ~/.ssh/id_ed25519.pub
  1. أضف المفتاح العام إلى إعدادات GitHub أو GitLab

5.3 خطأ صلاحيات الوصول للمستودع

عند محاولة استنساخ مستودع خاص أو مؤسسة، قد يظهر الخطأ:

fatal: repository 'https://github.com/اسم_المستخدم/اسم_المستودع.git/' not found

【الحل】

  • تأكد من صحة الرابط
  • تحقق من وجود صلاحية للوصول
  • أعد إدخال بيانات المصادقة إذا لزم الأمر

5.4 أخطاء الشبكة

أخطاء مثل “Connection timed out” أو “Could not resolve host” عادة بسبب مشاكل الاتصال أو إعدادات البروكسي.

【الحل】

  • تأكد من الاتصال بالإنترنت
  • راجع إعدادات الـ VPN أو البروكسي
  • إذا كانت المشكلة من GitHub نفسه، انتظر قليلاً وأعد المحاولة

5.5 أخطاء أخرى شائعة

  • وجود مجلد بنفس الاسم
    إذا كان هناك مجلد بنفس الاسم، لن يتم الاستنساخ. غيّر اسم المجلد أو احذف القديم.
  • نفاد مساحة القرص
    تأكد من وجود مساحة كافية قبل الاستنساخ.

إذا واجهت أي خطأ، قم بتحليل السبب خطوة بخطوة وستتمكن من حل المشكلة.

6. خيارات مفيدة لأمر git clone

يحتوي أمر “git clone” على عدة خيارات مفيدة لزيادة الكفاءة وتسهيل الحصول على البيانات المطلوبة أو استنساخ المستودعات مع الـ submodules. نستعرض هنا أشهر هذه الخيارات:

6.1 خيار –depth (الاستنساخ السريع)

إذا كنت تحتاج فقط لأحدث السجل دون التاريخ الكامل للمستودع، استخدم خيار --depth، لتحديد عدد معين من الـ commits:

git clone --depth 1 https://github.com/exampleuser/sample-project.git

في هذا المثال، يتم جلب آخر commit فقط. مفيد جدًا للمستودعات الضخمة أو في بيئات CI.

6.2 خيار –single-branch

افتراضيًا، يستنسخ git clone جميع الفروع، أما باستخدام --single-branch تحصل فقط على فرع معين. غالبًا يُستخدم مع --branch:

git clone --branch develop --single-branch https://github.com/exampleuser/sample-project.git

6.3 خيار –recursive (استنساخ الـ Submodules)

عندما يحتوي المستودع على submodules، استخدم خيار --recursive لاستنساخها معًا:

git clone --recursive https://github.com/exampleuser/sample-project.git

إذا نسيت، يمكنك جلبها بعد الاستنساخ:

git submodule update --init --recursive

6.4 خيارات مفيدة أخرى

  • خيار –origin
    إذا أردت اسمًا مختلفًا للـ remote غير “origin”.
  • تحديد اسم المجلد عند الاستنساخ
    أضف اسم المجلد في نهاية الأمر.
  git clone https://github.com/exampleuser/sample-project.git اسم_المجلد_الذي_تريده

باستخدام هذه الخيارات بشكل مرن، يمكنك تسريع عملك مع git clone.

7. استخدام أدوات GUI للاستنساخ عبر git clone

إذا كنت لا تفضل سطر الأوامر، يمكنك استخدام أدوات واجهة رسومية GUI على Ubuntu لتنفيذ “git clone” بسهولة.

7.1 أشهر أدوات GUI

  • Gittyup
    أداة بسيطة وخفيفة، متوفرة في مستودع Ubuntu أو عبر Flatpak.
  • Visual Studio Code (VS Code)
    محرر شهير جدًا، يوفر دعم Git كامل عبر الإضافات.
  • GitKraken
    واجهة سهلة ومميزات غنية (مجانية للاستخدام الشخصي).

7.2 طريقة الاستنساخ باستخدام Gittyup

  1. ثبت Gittyup (sudo apt install gittyup أو عبر Flatpak).
  2. افتح البرنامج واضغط على زر “استنساخ مستودع” أو “Clone Repository”.
  3. أدخل رابط المستودع وحدد مجلد الحفظ ثم نفذ العملية.

7.3 طريقة الاستنساخ باستخدام Visual Studio Code

  1. افتح VS Code واضغط على أيقونة “إدارة المصدر” الجانبية.
  2. اضغط على زر “استنساخ مستودع” (أو Clone Repository).
  3. الصق رابط المستودع وحدد مجلد الحفظ، سيبدأ الاستنساخ مباشرة.
  4. بعد الاستنساخ يمكنك إدارة المشروع من داخل VS Code.

7.4 ميزات واعتبارات أدوات GUI

  • الميزات
    لا حاجة للأوامر، وسهل الاستخدام خاصة للمبتدئين. يمكن رؤية الاختلافات وسجل التغييرات بسهولة.
  • الاعتبارات
    كل أداة تختلف في الخصائص، اختر الأنسب لك. من المفيد البدء بـ GUI ثم تعلم سطر الأوامر تدريجيًا لمرونة أكبر.

يساعدك استخدام أدوات GUI في تسهيل عمليات git على Ubuntu وزيادة إنتاجيتك.

8. الخلاصة

شرحت هذه المقالة بالتفصيل كل ما تحتاجه لاستخدام “git clone” على Ubuntu من التثبيت، واستخدام أوامر HTTPS/SSH، واستخدام الخيارات المتقدمة، وحتى أدوات GUI.

يعد أمر “git clone” أساسيًا لتنزيل المشاريع مفتوحة المصدر، والتطوير الجماعي، والتعلم الذاتي. تعلم استخدامه جيدًا سيُسهل عليك الكثير من الأعمال التقنية.

خاصة للمبتدئين: إذا واجهت مشكلة، ابحث عن رسالة الخطأ أو راجع الوثائق الرسمية. ومع اكتساب الخبرة، جرب استخدام الخيارات المفيدة أو أدوات GUI لتطوير مهاراتك.

إذا واجهت مشكلة لم يتم حلها هنا، راجع الأسئلة الشائعة (FAQ) أو وثائق GitHub الرسمية أو المجتمعات التقنية.
استمر في تطوير معرفتك باستخدام Ubuntu وGit لتوسيع إمكانياتك في البرمجة والتطوير.

9. الأسئلة الشائعة (FAQ)

س1: كيف يمكنني تثبيت Git على Ubuntu؟
ج1: نفذ الأوامر التالية في الطرفية:

sudo apt update
sudo apt install git

بعد التثبيت، تحقق من الإصدار عبر git --version.

س2: كيف أستنسخ فرعًا محددًا فقط باستخدام git clone؟
ج2: استخدم خيار --branch أو -b مع اسم الفرع عند الاستنساخ:

git clone --branch اسم_الفرع رابط_المستودع

يمكنك إضافة --single-branch للحصول فقط على ذلك الفرع.

س3: تظهر لي أخطاء مصادقة عند الاستنساخ عبر HTTPS، ماذا أفعل؟
ج3: عليك استخدام رمز الوصول الشخصي (PAT) بدلاً من كلمة المرور. أنشئ PAT من إعدادات GitHub واستخدمه بدل كلمة المرور عند الاستنساخ.

س4: كيف أنشئ مفتاح SSH وأسجله؟
ج4: نفذ الأمر التالي في الطرفية:

ssh-keygen -t ed25519 -C "your.email@example.com"

انسخ المفتاح العام (~/.ssh/id_ed25519.pub) وسجله في إعدادات حسابك على GitHub أو GitLab.

س5: كيف أعرض رابط المستودع البعيد بعد الاستنساخ؟
ج5: في مجلد المستودع نفذ:

git remote -v

ستظهر روابط المستودعات البعيدة.

س6: ماذا يحدث إذا كان هناك مجلد بنفس الاسم عند الاستنساخ؟
ج6: سيظهر خطأ. غير اسم المجلد المستهدف أو احذف المجلد القديم قبل الاستنساخ.

س7: كيف أستنسخ مستودع يحتوي على submodules بشكل صحيح؟
ج7: استخدم خيار --recursive عند الاستنساخ:

git clone --recursive رابط_المستودع

إذا نسيت، يمكنك تنفيذ:

git submodule update --init --recursive

بعد الاستنساخ.

س8: ما أفضل أدوات Git GUI المتوفرة على Ubuntu؟
ج8: Gittyup، Visual Studio Code (مع الإضافات)، وGitKraken من الأدوات الشائعة. اختر ما يناسبك.

س9: كيف أبدل إلى فرع آخر بعد الاستنساخ؟
ج9:

git fetch --all
git checkout اسم_الفرع

لتغيير الفرع بعد الاستنساخ.