اذهب إلى المحتوى

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

اقتباس

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

إنشاء حساب GitHub

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

إنشاء مستودع جديد في GitHub

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

  • يوجد زر New أخضر على يسار اللوحة في الغالب، كما توجد قائمة منسدلة عليها علامة + أعلى جهة اليمين تحتوي خيار New Repository، هاتان طريقتان لإنشاء مستودع جديد تستطيع استخدام أيهما.

  • أدخل اسم المستودع في الصفحة التي تلي ذلك، اختر أي اسم تريد بشرط ألا يكون لديك مستودع سابق بنفس الاسم، لنكتب test-repo لغرض مثالنا هنا.

  • فعِّل خيار Add a README file لإضافة ملف Readme. لاحظ أن عليك تجنب هذا الخيار في المستقبل إذا كان لديك مستودع محلي وتريد دفعه push إلى هذه المستودع الجديد، لأن هذا سيمنع عملية الدفع.

  • انقر على زر Create repository في أسفل الصفحة.

وهكذا صار لدينا أول مستودع خاص بنا.

مصادقة الحسابات

ينبغي أن نشرح عملية المصادقة authentication أولًا قبل الانتقال إلى شرح الاستنساخ cloning، ذلك أنك إذا جربت مزامنة مستودع محلي على حاسوبك مع مستودع بعيد على GitHub فلن تنجح لأن دعم المصادقة بكلمة المرور قد ألغي في 2021، فأمامنا الآن عدة خيارات:

  • استخدام أداة GitHub CLI.
  • استخدام مفاتيح SSH.
  • استخدام مفاتيح المصادقة الشخصية Personal Authentication Tokens.

يُعد الخيار الأول هو الأسهل، أما مفاتيح SSH فهي خيار متقدم بالنسبة للمبتدئين.

واجهة سطر أوامر GitHub

تمثل أداة GitHub CLI واجهة نصية لموقع GitHub وتؤدي عدة وظائف أهمها تسهيل عملية المصادقة لحسابك فيه لتتمكن من تنفيذ مهامك مع Git كدفع ملفاتك إلى مستودع بعيد مثلًا.

لتثبيت هذه الأداة، زر صفحتها واتبع تعليمات التثبيت الخاصة بنظام تشغيلك، ثم جرب تشغيل الأمر gh --version بعد التثبيت لتتأكد من نجاح تثبيتها من خلال عرض معلومات إصدارها:

$ gh --version
  gh version 2.42.1 (2024-01-15)
  https://github.com/cli/cli/releases/tag/v2.42.1

ثم نفذ الأمرين التاليين:

$ gh auth login
$ gh auth setup-git

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

أما الأمر الثاني gh auth setup-git فننفذه مرة واحدة فقط حيث يضيف بعض العناصر المساعدة في عملية المصادقة إلى الإعدادات العامة.

مفاتيح SSH

لدينا خيار آخر للمصادقة هو مفتاح SSH، وذلك إن لم ترغب في استخدام أداة GitHub CLI السابقة، سنبدأ بتوليد مفتاح أولًا ثم استخدامه، تجاوز هذه الخطوة إذا كان لديك زوج من مفاتيح SSH بالفعل -ستعرف أنها لديك إذا نفذت الأمر:

ls ~/.ssh

ورأيت ملفًا مثل id_rsa.pub أو id_ed25519.pub. نفذ الأمر التالي لإنشاء زوج جديد من المفاتيح:

$ ssh-keygen -t ed25519 -C عنوان بريد الإلكتروني هنا

يضع الخيار ‎-C تعليقًا داخل المفتاح، قد يكون أي شيء تريده، لكن الشائع هنا هو كتابة عنوان بريدك الإلكتروني، ستظهر لك عدة أسئلة تستطيع تجاوزها بالضغط على مفتاح الإدخال Enter.

نصيحة أمنية

يفضل استخدام كلمة مرور للوصول إلى هذا المفتاح، ذلك أن وصول شخص غيرك إليه يمكّنه من انتحال شخصيتك والوصول إلى حسابك في GitHub، ويلجأ المطورون إلى استخدام Key Agent يتذكر كلمة المرور لفترة زمنية محددة.

أما إذا لم تضع كلمة مرور لمفتاحك فإنك تتركه عرضة للسرقة معتمدًا على ظن أنه لا يمكن الحصول على نسخة من الجزء الخاص من مفتاحك المخزن على حاسوبك، لكن فكر في الأمر من المنطق التالي: هل ستكون بحاجة إلى كلمة مرور أصلًا إذا كنت تثق في أمان حاسوبك؟

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

استمر بالنقر على مفتاح الإدخال إذا ظهرت أي أسئلة على الشاشة حتى تصل إلى شيء شبيه بما يلي:

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_ed25519
Your public key has been saved in id_ed25519.pub
The key fingerprint is:
SHA256:/lrT43BQBRPJpUXxpTBFInhdtZSQjQwxU4USwt5c0Lw user@locahost
The key's randomart image is:
+--[ED25519 256]--+
|        .o.X^%^=+|
|        ..oo*^.=o|
|        ..o = o..|
|         . + E   |
|        S .      |
|       .   o     |
|        . + +    |
|         o = .   |
|        ... .    |
+----[SHA256]-----+

سنحتاج إلى إجراء بعض الإعدادات الإضافية على المفتاح إذا اخترنا اسم ملف غير الاسم الافتراضي لكي نتمكن من تشغيله مع GitHub بشكل صحيح.

لاحظ هذا الرسم العشوائي الغريب في المثال أعلاه، وهو مجرد تمثيل بصري للمفتاح، وتوجد طرق لإعداد SSH بحيث تُعرض لك هذه اللوحة في كل مرة تسجل فيها الدخول، وفكرتها أنك إذا رأيت اختلافًا في اللوحة في مرة ما فهذا يعني أن شيئًا ما قد تغير في إعدادات الأمان. اكتب الآن ls ~/.ssh، يجب أن تظهر نتيجة كهذه:

id_ed25519    id_ed25519.pub

لا تشارك الملف الأول مع أحد أبدًا لأنه مفتاحك الخاص private key، بل لا يوجد سبب يدعوك حتى لنسخه، أما الملف الثاني هو المفتاح العام public key، وهو ما تستطيع مشاركته بأمان، وسنشاركه مع GitHub بعد قليل لكي تسجل الدخول باستخدامه.

اقتباس

جرب تنفيذ الأمرين أدناه إذا واجهت مشكلة بسبب تدقيق SSH الأمني:

 chmod 700 ~/.ssh $
*/chmod 600 ~/.ssh $

هذه عملية ستتم مرة واحدة فقط، إن لم تكن أذونات الملفات مقيدة.

نعطي المفتاح العام الآن إلى GitHub عبر نسخه.

لنحصل أولًا على نسخة منه ننفذ الأمر التالي -غير اسم الملف لاسم الملف الخاص بك-:

$ cat ~/.ssh/id_ed25519.pub

ينبغي أن تظهر لديك نتيجة كالتالي:

ssh-ed25519 AAAC3N[بعض المحارف هنا]V+znpoO عنوان بريدك

انسخ السطر كاملًا إلى الحافظة لتستطيع لصقه لاحقًا.

ربط المفتاح بـ GitHub

اذهب الآن إلى GitHub وانقر على صورتك الشخصية في أعلى اليمين ثم اتبع ما يلي:

  1. اختر الإعدادات Settings.
  2. اختر SSH and GPG keys.
  3. اختر New SSH key
    • أدخل عنوانًا مناسبًا مثل "my laptop key" في حقل Title.
    • تأكد من اختيار Authentication key في حقل Key type.
    • الصق المفتاح الذي نسخناه قبل قليل في حقل key.
    • انقر على Add SSH key.
اقتباس

تذكر أننا استخدمنا بروتوكول SSH لاستنساخ روابط المستودعات لاحقًا.

استخدام مفاتيح الوصول الشخصي

حان الوقت لننشئ كلمات مرور جديدة نستخدمها مع GitHub، وستكون هذه المرة من نوع المفتاح الشخصي personal token، يوفر GitHub توثيقًا مفصلًا حول الموضوع لكن ملخصه أننا سننشئ مفتاح token يمثل بعض الصلاحيات، مثل القراءة والكتابة في مستودعاتي، وسنستخدمه بدلًا من كلمة المرور العادية في سطر الأوامر كما يلي:

Username for 'https://github.com': [اسم المستخدم]
Password for 'https://beejjorgensen@github.com': [مفتاح Token]

قد يحفظ حاسوبك هذا المفتاح لئلا تضطر إلى إدخاله في كل مرة، المهم أن إحدى أفضل مزاياه هي التحكم الدقيق في الصلاحيات حيث تستطيع تقييد الوصول ليكون للقراءة فقط أو اقتصار الصلاحيات على مستودعات معينة، وكذلك نستطيع استخدام مصادقة أداة GitHub CLI مع هذا المفتاح من خلال إعطاء المفتاح للأداة عبر الإدخال القياسي standard input.

لنفرض أنك حفظت المفتاح في ملف باسم mytoken.txt، نستطيع حينها إثبات هويتنا عبر واجهة أوامر GitHub كما يلي:

$ gh auth login --with-token < mytoken.txt

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

إنشاء نسخة محلية من المستودع

نحتاج الآن إلى معرفة رابط المستودع كي نستنسخه:

  1. انقر على أيقونة صورتك الشخصية في الزاوية العلوية اليمنى ثم اختر Your repositories، ستظهر لك صفحة تضم جميع مستودعاتك، قد لا تجد هنا سوى المستودع test-repo الذي أنشأناه، فانقر على اسمه.
  2. تنتقل الآن إلى صفحة المستودع حيث تتصف الملفات الخاصة به، لكن هدفنا الأساسي هو الحصول على رابط الاستنتساخ، فانقر على زر Code الأزرق الكبير.

لننسخه الآن من GitHub إلى الحاسوب المحلي، سيختلف هذا إذا كنت تستخدم GitHub CLI أو مفاتيح SSH، لكن سنشرح الطريقتين.

الاستنتساخ من GitHub باستخدام CLI

لدينا خياران هنا:

الخيار الأول: أشرنا سابقًا إلى تذكر أننا سنستخدم بروتوكول SSH عندما أثبتنا هويتنا باستخدام gh auth login، وعليه سنختار التبويب الموافق لذلك في هذه النافذة، لكن إذا اخترت HTTPS فستختار تبويبها. انسخ الرابط واذهب إلى سطر الأوامر ونفذ الأمر:

 git clone [url]

حيث تضع الرابط الذي نسخته بدلًا من الأقواس، فمثلًا سيكون هكذا في حالة HTTPS:

$ git clone https://github.com/user/test-repo.git

وهذه في حالة SSH:

$ git clone git@github.com:user/test-repo.git

الخيار الثاني: اختر تبويب GitHub CLI من القائمة المنسدلة ثم نفذ الأمر كما هو مكتوب هناك تمامًا، سيكون شبيها بالسطر التالي:

$ gh repo clone user/test-repo

الاستنساخ من GitHub باستخدام مفاتيح SSH

نستخدم هذه الطريقة إذا كنا أعددنا مفتاح SSH من قبل:

  1. تأكد من اختيار تبويب SSH بعد النقر على زر Code الأخضر.
  2. انسخ هذا الرابط.
  3. انتقل إلى سطر الأوامر ونفذ الأمر git clone [URL] حيث تضع الرابط الذي نسخته بدلًا من الأقواس بحيث يكون كالتالي:
$ git clone git@github.com:user/test-repo.git

إجراء التعديلات ودفع الملفات إلى المستودع البعيد

ننتقل الآن إلى مجلد المستودع بعد استنساخه باستخدام الأمر git clone، ثم ندخل إليه باستخدام الأمر

cd اسم المجلد

ونعدّل أحد الملفات، وبعد ذلك نضيفه إلى منطقة التحضير stage باستخدام:

git add اسم الملف

ثم ننفذ عملية إيداع باستخدام:

git commit -m "message"

وأخيرًا لدفعه إلى النسخة البعيدة على GitHub مرة أخرى:

git push

يجب أن نرى هذه التغييرات الآن إذا عدنا إلى صفحة المستودع على GitHub وأعدنا تحميل الصفحة.

هذا يعيدنا إلى مسار العمل الشائع على نظام Git:

  1. استنساخ مستودع بعيد
  2. إجراء بعض التعديلات على النسخة المحلية.
  3. إضافة التغييرات إلى منطقة التحضير.
  4. تسجيل هذه التغييرات وإيداعها من خلال عملية commit.
  5. دفع هذه التغييرات إلى المستودع البعيد.
  6. العودة مرة أخرى إلى الخطوة رقم 2.

التعاون في GitHub

توجد طريقتان أساسيتان للتعاون في موقع GitHub هما:

  1. الاشتقاق وطلب السحب Fork/Pull Request.
  2. إضافة مساهم collaborator.

الطريقة الأسهل منهما هي إضافة المساهمين مباشرة إلى مستودعك، اتبع الخطوات التالية:

  1. اختر الإعدادات Settings.
  2. اختر collaborators من القائمة الجانبية اليسرى.
  3. أكد هويتك ثم انقر على زر Add people.
  4. أدخل اسم المستخدم للشخص الذي تريد التعاون معه.

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

خاتمة

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

اقرأ أيضًا

ترجمة -بتصرف- للفصل الثاني من دليل Beej إلى Git لصاحبه Brian “Beej Jorgensen” Hall


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...