Skip to content

سير عمل Git و GitHub

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

لتلبية هذه الحاجة، ظهرت برامج التحكم في الإصدارات. في هذه المقالة، سنقدم أشهر برنامج للتحكم في الإصدارات — Git — وأفضل منصة لاستضافة الكود — GitHub. سنتعلم كيفية استخدام Git لإدارة الكود، وكيفية الحصول على كود الآخرين من GitHub، وكيفية رفع كودنا الخاص، وكيفية التعاون مع الآخرين في المشاريع الكبيرة.

سواء كان ذلك لتتبع إصدارات المشروع الشخصي، أو مزامنة الكود في العمل الجماعي، أو المساهمة في مجتمع المصادر المفتوحة، فإن Git و GitHub هما أدوات أساسية للمطورين المعاصرين. من خلال إتقانهما، ستتمكن من إدارة الكود بكفاءة أكبر، وإنشاء نقاط فحص حسب الحاجة، والتنقل بحرية بين مراحل الكود المختلفة، والتعامل بسهولة مع كل شيء بدءًا من تغيير ملف واحد إلى تطوير مشاريع كبيرة — مما يجعل كل تكرار للكود خاضعًا للتحكم وقابلًا للتتبع.

💡 المعارف المسبقة

قبل تعلم Git، يُنصح بأن تكون على دراية بالمفاهيم التالية:

ستركز هذه المقالة على سير عمل GitHub والعمليات العملية، ويمكن الرجوع للمحتوى الأساسي عبر روابط الملحق.

البدء السريع مع Git

قبل البدء باستخدام Git، تأكد من أنك قرأت المحتوى في الملحق حول سطر الأوامر وأساسيات Git. تفترض هذه المقالة أنك تملك هذه المعارف الأساسية، وتشرح مباشرة كيفية تثبيت وإعداد Git واستخدام GitHub للتعاون.

كيفية تثبيت Git

سنعرض ثلاث طرق لتثبيت Git على أنظمة تشغيل مختلفة. يرجى اتباع التعليمات حسب إصدار نظامك:

Windows

  1. انتقل إلى صفحة تحميل Git الرسمية وقم بتنزيل برنامج التثبيت المناسب لنظامك: حزمة التثبيت. بشكل افتراضي، يُنصح باستخدام مثبت x64.

  2. انقر نقرًا مزدوجًا على برنامج التثبيت واتبع تعليمات معالج التثبيت:

    1. يُنصح بالحفاظ على الخيارات الافتراضية. إذا احتجت إلى التخصيص، يرجى ملاحظة النقاط التالية: (في معظم الحالات، يمكنك النقر باستمرار على "Next")
      • اختيار المحرر الافتراضي لـ Git: اختر المحرر المفضل لديك (مثل VS Code). يمكنك اختيار الخيار الأول افتراضيًا، وهو Vim (محرر نصوص)، أو اختيار خيار "Visual Studio Code as Git's default editor" (يتطلب تثبيت VS Code مسبقًا). يمكنك الاحتفاظ بالاختيار الافتراضي والنقر على "Next" للمتابعة.
      • اختيار كيفية استخدام Git: تتحكم هذه الخيارات الثلاثة في إمكانية الوصول إلى Git في النظام. يُنصح باختيار الخيار 2 ("from command line and 3rd-party software") — فهو يضيف أدوات Git الأساسية إلى PATH، مما يتيح لك استخدام Git في Git Bash وموجه الأوامر و PowerShell وبيئات التطوير دون إحداث فوضى في النظام.
  3. بعد التثبيت، انقر بزر الماوس الأيمن على سطح المكتب. إذا رأيت "Git Bash Here" في القائمة، فقد تم التثبيت بنجاح.

MacOS

بالنسبة لـ macOS، يمكنك أولاً إدخال git --version في الطرفية للتحقق مما إذا كان Git مثبتًا بالفعل. إذا لم يكن كذلك، سيُنبهك النظام للتثبيت — فقط اتبع التعليمات لإكمال التثبيت.

  1. الطريقة 1: التثبيت عبر Homebrew إذا قمت بتثبيت Homebrew (مدير حزم Mac)، افتح الطرفية وأدخل
    bash
    brew install git
  2. الطريقة 2: (مُوصى بها) التثبيت عبر Xcode: https://developer.apple.com/xcode/ ، يتضمن Xcode Git مدمجًا. بعد التثبيت، فقط اتبع التعليمات للمتابعة.

Linux

يمكن تثبيت Git على معظم توزيعات Linux عبر مدير الحزم:

  • Ubuntu/Debian:
bash
sudo apt update
sudo apt install git
  • CentOS/RHEL:
bash
sudo yum install git
  • التحقق من التثبيت: أدخل git --version في الطرفية. إذا ظهر رقم الإصدار، فقد تم التثبيت بنجاح.

تهيئة Git

بعد تثبيت Git، تحتاج أولاً إلى إعداد معلومات المستخدم — هذه خطوة أساسية لاستخدام Git في التحكم في الإصدارات. نفذ الأوامر التالية في الطرفية (استبدل المحتوى بين الأقواس بمعلوماتك الخاصة):

bash
# تعيين اسم المستخدم العام (سيظهر في سجل الالتزامات)
git config --global user.name "Your Name"

# تعيين البريد الإلكتروني العام (يُنصح باستخدام البريد المسجل على GitHub/GitLab)
git config --global user.email "your.email@example.com"

سيقوم Git بتضمين هذه المعلومات في كل سجل التزام، كـ"معلومات المؤلف" لكل تعديل. عند عرض سجل الإصدارات (مثلاً باستخدام git log)، يمكنك رؤية بوضوح من قام بتعديل كل سطر كود، مما يسهل تتبع المسؤولية والتواصل. في المشاريع التعاونية، تجعل معلومات الهوية الموحدة أعضاء الفريق قادرين على التعرف بسرعة على من أجرى التغييرات، مما يرفع كفاءة التعاون (مثلاً العثور على المطور المعني عبر سجلات الالتزام لمناقشة المشكلات).

يمكنك التحقق من معلومات إعدادات Git الحالية بإدخال git config --list في سطر الأوامر للتأكد من نجاح الإعداد.

ما هو GitHub

GitHub هي منصة استضافة كود مبنية على Git. لا توفر فقط تخزينًا بعيدًا لمستودعات Git، بل تتضمن أيضًا أدوات تعاون (مثل Issues، Pull Requests، Projects)، مما يسهل على المطورين مشاركة الكود والتعاون. باختصار، Git هو أداة تحكم في الإصدارات محلية، بينما GitHub هو "قرص سحابي لمستودعات الكود + مجتمع تعاوني" بعيد.

GitHub ليست فقط أكبر منصة استضافة كود في العالم، بل هي أيضًا أكثر مجتمعات المصادر المفتوحة نشاطًا وتأثيرًا عالميًا. الفكرة الأساسية لـ "المصادر المفتوحة" هنا هي أن أي شخص يمكنه تنزيل وتشغيل الكود المصدري للبرنامج. يسمح هذا النموذج للأشخاص حول العالم بمراجعة كود بعضهم البعض وإجراء التعديلات، أو إنشاء مشاريع جديدة بناءً عليه. على سبيل المثال، يمكنك العثور على GitHub على دروس تعليمية متنوعة والكود المصدري الكامل لأطر تدريب نماذج GPT (مثل PyTorch). يوميًا، يتعاون عدد لا يحصى من الأشخاص حول العالم في مراجعة وتحسين الكود.

العديد من الشركات الكبرى تفتح مصدر برامجها أو دروسها على GitHub للحصول على ميزة تنافسية في الصناعة — ويمكن اعتبار ذلك شكلاً من أشكال الإعلان. في مجتمع GitHub، عدد "النجوم (stars)" التي يحصل عليها المشروع هو المؤشر الرئيسي لقياس قيمته؛ كلما زاد عدد النجوم التي يملكها المشروع أو المنظمة، زادت مصداقيته وتأثيره.

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

إنشاء حساب GitHub

  1. انتقل إلى موقع GitHub الرسمي وانقر على "Sign up" في الزاوية العلوية اليمنى.
  2. أدخل عنوان بريدك الإلكتروني (يُنصح باستخدام بريد إلكتروني شائع الاستخدام، حيث سيتم إرسال التحقق والإشعارات إليه)، وقم بتعيين كلمة مرور (يجب أن تتضمن أحرفًا وأرقامًا وأحرفًا خاصة).
  3. أكد التحقق البشري، واتبع التعليمات للتحقق من بريدك الإلكتروني، وسيتم إنشاء حسابك.

إنشاء مستودعك الأول على GitHub

بعد ذلك، سننشئ أول مجلد تخزين، والذي يُعرف أيضًا بالمستودع أو "repo".

  1. Repository name: اسم المستودع كما سيظهر للآخرين.
  2. Description: وصف تفصيلي للمستودع.
  3. Choose visibility: للمستودعات الشخصية، إذا تم تعيينها كـ private، فلن يتمكن إلا أنت والأشخاص المدعوون خصيصًا من رؤيتها. إذا تم تعيينها كـ public، فسيتمكن الجميع من رؤيتها. بالنسبة للمستودعات داخل المنظمة، إذا كانت Private، فلن يتمكن إلا أعضاء المنظمة من رؤيتها. إذا كانت Public، يمكن للأشخاص خارج المنظمة رؤيتها أيضًا.
  4. README: العرف السائد هو أن يكون لكل مستودع ملف README. يمكنك اعتباره مقدمة شاملة للمستودع، تتضمن تعليمات الاستخدام وقائمة الملفات وطرق التشغيل.
  5. Add .gitignore and license:
    1. يخبر ملف .gitignore نظام Git بتجاهل مجلدات أو ملفات معينة عند الرفع إلى GitHub، وبالتالي لن يتم تتبعها أو إضافتها إلى منطقة الإعداد. هذا مفيد لملفات الاختبار المؤقتة أو حزم التبعية أو الملفات الكبيرة. بمجرد التحديد، لن يتم تتبع هذه الملفات بعد الآن.
    2. يشير license إلى نوع ترخيص المصدر المفتوح الذي تختاره. تُفصل التراخيص المختلفة ما إذا كان يمكن للآخرين استخدام كودك لأغراض تجارية، وتتضمن شروطًا وأحكامًا أخرى.

يُنصح بتحديد "Add README"، وتعيين رؤية المستودع إلى "Private"، وملء اسم المستودع والوصف حسب تفضيلاتك، ثم النقر على "Create repository" لإكمال إنشاء أول مستودع بعيد.

بعد ذلك، ستمتلك مستودعًا نظيفًا بدون أي ملفات إضافية. يمكنك الآن البدء برفع الملفات.

أمر الحصول على المستودع هو git clone، لكنه يحتاج إلى عنوان المستودع. يمكنك العثور على عنوان المستودع بالنقر على زر "Code" الأخضر، حيث سترى خيارات HTTPS و SSH. عادةً، يمكنك استخدام أي من الطريقتين لتنزيل المستودع على جهازك المحلي (فقط بهذه الطريقة يمكنك تعديل الملفات ورفعها).

بشكل عام، استنساخ المستودعات عبر HTTP مناسب للتنزيل المؤقت واختبار مستودعات الآخرين، لكن لا يُنصح به للتطوير الشخصي. للحصول على تجربة تعلم أفضل، يجب عليك إعداد مصادقة SSH أولاً.

ربط SSH المحلي

في GitHub، يعني "ربط بروتوكول SSH" أساسًا ربط مفتاح SSH العام لجهازك المحلي بحساب GitHub الخاص بك، مما يسمح لـ GitHub بالتعرف على جهازك عبر بروتوكول SSH. هذا يتيح لك تشغيل المستودعات البعيدة بأمان دون الحاجة إلى كلمة مرور (مثل استنساخ أو دفع أو سحب الكود).

ببساطة: الأمر يشبه إعطاء جهازك "بطاقة دخول خاصة بـ GitHub". بعد الربط، عندما يصل جهازك إلى مستودعات GitHub عبر بروتوكول SSH، سيتحقق GitHub من "بطاقة الدخول" هذه (مفتاح SSH العام الخاص بك). بمجرد التأكد من أنه جهازك المصرح لك، يمكنك العمل مباشرة — دون الحاجة لإدخال اسم المستخدم وكلمة المرور في كل مرة.

💡 ما هو SSH

لماذا نحتاج إلى ربط بروتوكول SSH؟

يدعم GitHub بروتوكولين رئيسيين لتشغيل المستودعات: بروتوكول HTTPS وبروتوكول SSH:

  • بروتوكول HTTPS: كل عملية (مثل push) تتطلب إدخال اسم المستخدم وكلمة المرور لـ GitHub (أو رمز الوصول الشخصي PAT). عملية التحقق مرهقة وتحمل خطر تسريب كلمة المرور.
  • بروتوكول SSH: تتم المصادقة عبر "زوج مفاتيح"، لذلك لا حاجة لإدخال كلمة المرور بشكل متكرر، والنقل المشفر أكثر أمانًا.

"ربط بروتوكول SSH" هو خطوة أساسية لتفعيل مصادقة GitHub عبر SSH — فقط بعد "ربط" مفتاح SSH العام المحلي بحساب GitHub، يمكن لـ GitHub التعرف على جهازك والسماح بعمليات SSH على المستودع.

المنطق الأساسي لـ "الربط": دور زوج مفاتيح SSH

تعتمد مصادقة SSH على زوج مفاتيح (مفتاح عام + مفتاح خاص)، وهما ملفات تشفير متطابقة. بعد التوليد، تحتاج إلى تقديم "المفتاح العام" لـ GitHub ("الربط")، بينما يبقى "المفتاح الخاص" على جهازك المحلي:

  1. المفتاح الخاص: يُخزن على جهازك المحلي (مثل الحاسوب) في دليل محدد (عادةً ~/.ssh/)، ويعمل كـ"مفتاحك الحصري"، ويجب عدم مشاركته مع أي شخص نهائيًا.
  2. المفتاح العام: هذا "قفل" يمكن مشاركته علنًا — تحتاج إلى نسخه إلى قائمة "SSH keys" في حساب GitHub (عملية "الربط").

عندما تشغل مستودع GitHub عبر SSH (مثلاً git push git@github.com:xxx/xxx.git):

  • يستخدم جهازك المحلي المفتاح الخاص لتشفير "طلب العملية" وإرساله إلى GitHub؛
  • بعد استلام الطلب، يحاول GitHub فك التشفير باستخدام المفتاح العام الذي ربطته سابقًا؛
  • إذا نجح فك التشفير، يتم تأكيد أن جهازك مصرح لك، وتُسمح العملية؛ وإلا، يُرفض الوصول.

خطوات "الربط" العملية (العملية الأساسية)

بمجرد فهمك للمبدأ، تصبح العملية الفعلية بسيطة — الجوهر هو "توليد زوج مفاتيح ← رفع المفتاح العام إلى GitHub":

  1. توليد زوج مفاتيح SSH محليًا

    1. استخدام Trae للحصول على المفتاح العام (مُوصى بها) نصيحة: Help me create the SSH key needed for GitHub login. My email is your_email@gmail.com , Please return the public key for me to copy

    بعد إدخال النصيحة، تحتاج أيضًا إلى الضغط على Enter في الطرفية على اليسار، وإلا سينتظر الأمر دون تنفيذ. بما أن Trae لا يمكنه تنفيذ أي أحكام شرطية، نحتاج فقط للضغط المستمر على Enter.

    أخيرًا، سترى Trae على اليمين قد أعاد المفتاح العام الذي قرأه. فقط انسخه واستعد للصقه في الخطوة التالية.

    2. الحصول على المفتاح العام يدويًا افتح طرفيتك المحلية (على Windows استخدم Git Bash أو PowerShell؛ على macOS/Linux استخدم الطرفية)، وأدخل الأمر التالي (استبدل your_email@example.com بالبريد الإلكتروني المستخدم عند تسجيل حساب GitHub):

    bash
    ssh-keygen -t ed25519 -C "your_email@example.com"
    1. اضغط Enter لقبول القيم الافتراضية (مسار الملف الافتراضي، بدون كلمة مرور، أو قم بتعيين كلمة مرور حسب الحاجة). سيؤدي هذا إلى توليد ملفين في دليل ~/.ssh/:
      • id_ed25519: المفتاح الخاص (محفوظ محليًا، لا تشاركه أبدًا
      • id_ed25519.pub: المفتاح العام (يجب رفعه إلى GitHub).
  2. "ربط" المفتاح العام بحساب GitHub

هذه هي خطوة الربط الأساسية — إضافة المفتاح العام المحلي إلى قائمة "SSH keys" في حساب GitHub:

  1. نسخ محتوى المفتاح العام:
    1. Trae:
    2. Windows: افتح C:\Users\<your>\.ssh\id_ed25519.pub بالمفكرة وانسخ كل محتواه؛
    3. macOS/Linux: شغّل cat ~/.ssh/id_ed25519.pub في الطرفية وانسخ كل المخرجات (من بداية ssh-ed25519 إلى البريد الإلكتروني في النهاية).
  2. سجل الدخول إلى GitHub وانتقل إلى صفحة "إدارة SSH Key":
    1. انقر على الصورة الرمزية في الزاوية العلوية اليمنى ← Settings ← القائمة الجانبية SSH and GPG keys ← انقر على New SSH key.
    2. أدخل أي عنوان (مثل "your local computer's SSH")، ثم الصق مفتاح SSH العام الذي حصلت عليه للتو هنا.

  1. التحقق من نجاح الربط

أدخل الأمر التالي في الطرفية (يمكن لـ Trae أيضًا تنفيذ العمليات التالية) لاختبار ما إذا كان GitHub يمكنه التعرف على جهازك:

bash
ssh -T git@github.com
  • إذا رأيت رسالة مثل Hi [your GitHub username]! You've successfully authenticated...، فهذا يعني أنك ربطت المفتاح بنجاح؛
  • إذا واجهت أخطاء، فعادةً يكون السبب نسخ المفتاح العام بشكل غير كامل، أو صلاحيات المفتاح الخاص مرتفعة للغاية (دليل ~/.ssh/ المحلي يجب أن يكون قابلًا للقراءة والكتابة من قبلك فقط). تحقق من هذه المشكلات حسب الحاجة.

ملاحظات مهمة

إذا كان لديك أجهزة متعددة (مثل حاسوب محمول وحاسوب مكتبي)، تحتاج إلى توليد زوج مفاتيح SSH منفصل لكل جهاز، وربط كل مفتاح عام بنفس حساب GitHub — كل جهاز يملك "بطاقة دخول" خاصة به.

لا تشارك أبدًا مفتاحك الخاص (لا ترفعه إلى GitHub أو تشاركه مع الآخرين)، وإلا قد ينتحل شخصيتك لتشغيل مستودعاتك. إذا تم تسريب المفتاح الخاص، احذف المفتاح العام المقابل من GitHub فورًا وقم بتوليد زوج مفاتيح جديد.

بعد ربط SSH، استخدم عنوان المستودع بتنسيق SSH (مثل git@github.com:username/repository.git) للعمليات، بدلاً من تنسيق HTTPS (مثل https://github.com/username/repository.git). إذا كنت قد استنسخت المستودع سابقًا عبر HTTPS، يمكنك تبديل البروتوكول باستخدام git remote set-url origin <new>.

استخدام Trae لعمليات GitHub

لقد شرحنا ما هو Git، وما هو GitHub، وما هو SSH، وكيفية إعداده. الآن يمكنك استخدام Trae بحرية لتنفيذ عمليات Git. أولًا، لنتعلم كيفية استنساخ مستودع بعيد إلى جهازك المحلي.

Git clone: تنزيل مستودع موجود

يمكنك ببساطة إخباره بعنوان المستودع الذي تريد استنساخه

Git pull: الحصول على التحديثات من المستودع البعيد

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

تأكد من تضمين اسم المجلد ومساره النسبي أو المطلق، لتجنب الدفع إلى مستودع خاطئ.

prompt:Help me pull this repository AIID-TEST in ./AIID-TEST.

Git commit & Git push: تحضير التحديثات ودفعها إلى GitHub

عندما يكون كل شيء جاهزًا، يمكنك محاولة تعديل الملفات المحلية، أو إضافة أو حذف عناصر في المجلد. ثم اطلب من Trae اكتشاف التغييرات ومساعدتك في دفعها إلى GitHub.

prompt:I finished. Commit and push to the repository AIID-TEST in ./AIID-TEST.

تم الدفع بنجاح. يمكنك الآن رؤية المحتوى المُحدَّث على GitHub.

المراجع