25 KiB
مقدمة إلى GitHub
تتناول هذه الدرس أساسيات GitHub، وهي منصة لاستضافة وإدارة تغييرات الكود الخاص بك.
رسم توضيحي بواسطة Tomomi Imura
اختبار ما قبل المحاضرة
المقدمة
في هذه الدرس، سنتناول:
- تتبع العمل الذي تقوم به على جهازك
- العمل على المشاريع مع الآخرين
- كيفية المساهمة في البرمجيات مفتوحة المصدر
المتطلبات الأساسية
قبل أن تبدأ، تحتاج إلى التحقق مما إذا كان Git مثبتًا. في الطرفية، اكتب:
git --version
إذا لم يكن Git مثبتًا، قم بتنزيل Git. ثم قم بإعداد ملف تعريف Git المحلي الخاص بك في الطرفية:
git config --global user.name "your-name"git config --global user.email "your-email"
للتحقق مما إذا كان Git قد تم تكوينه بالفعل، يمكنك كتابة:
git config --list
ستحتاج أيضًا إلى حساب GitHub، ومحرر كود (مثل Visual Studio Code)، وستحتاج إلى فتح الطرفية (أو: موجه الأوامر).
انتقل إلى github.com وقم بإنشاء حساب إذا لم تكن قد فعلت ذلك بالفعل، أو قم بتسجيل الدخول واملأ ملفك الشخصي.
✅ GitHub ليس مستودع الكود الوحيد في العالم؛ هناك مستودعات أخرى، لكن GitHub هو الأكثر شهرة.
التحضير
ستحتاج إلى مجلد يحتوي على مشروع كود على جهازك المحلي (الكمبيوتر المحمول أو الكمبيوتر الشخصي)، ومستودع عام على GitHub، والذي سيعمل كمثال على كيفية المساهمة في مشاريع الآخرين.
إدارة الكود
لنفترض أن لديك مجلدًا محليًا يحتوي على مشروع كود وترغب في البدء بتتبع تقدمك باستخدام Git - نظام التحكم في الإصدارات. يقارن بعض الأشخاص استخدام Git بكتابة رسالة حب لنفسك المستقبلية. عند قراءة رسائل الالتزام الخاصة بك بعد أيام أو أسابيع أو أشهر، ستتمكن من تذكر سبب اتخاذك قرارًا معينًا أو "التراجع" عن تغيير - وهذا عندما تكتب رسائل "التزام" جيدة.
المهمة: إنشاء مستودع والالتزام بالكود
شاهد الفيديو
-
إنشاء مستودع على GitHub. على GitHub.com، في علامة تبويب المستودعات، أو من شريط التنقل في الأعلى على اليمين، ابحث عن زر مستودع جديد.
- امنح مستودعك (المجلد) اسمًا.
- اختر إنشاء مستودع.
-
انتقل إلى مجلد العمل الخاص بك. في الطرفية، انتقل إلى المجلد (المعروف أيضًا بالدليل) الذي تريد البدء بتتبعه. اكتب:
cd [name of your folder] -
تهيئة مستودع Git. في مشروعك، اكتب:
git init -
التحقق من الحالة. للتحقق من حالة المستودع الخاص بك، اكتب:
git statusقد يبدو الإخراج شيئًا مثل هذا:
Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: file.txt modified: file2.txtعادةً ما يخبرك أمر
git statusبأشياء مثل الملفات الجاهزة ليتم حفظها في المستودع أو التي تحتوي على تغييرات قد ترغب في الاحتفاظ بها. -
إضافة جميع الملفات للتتبع يُطلق على هذا أيضًا اسم وضع الملفات في منطقة التهيئة.
git add .يشير الأمر
git addمع الحجة.إلى أن جميع ملفاتك وتغييراتك سيتم تتبعها. -
إضافة ملفات محددة للتتبع
git add [file or folder name]يساعدنا هذا في إضافة ملفات محددة فقط إلى منطقة التهيئة عندما لا نريد الالتزام بجميع الملفات دفعة واحدة.
-
إلغاء تهيئة جميع الملفات
git resetيساعدنا هذا الأمر في إلغاء تهيئة جميع الملفات دفعة واحدة.
-
إلغاء تهيئة ملف معين
git reset [file or folder name]يساعدنا هذا الأمر في إلغاء تهيئة ملف معين فقط دفعة واحدة عندما لا نريد تضمينه في الالتزام التالي.
-
الاحتفاظ بعملك. في هذه المرحلة، قمت بإضافة الملفات إلى ما يسمى منطقة التهيئة. وهي مكان حيث يقوم Git بتتبع ملفاتك. لجعل التغيير دائمًا، تحتاج إلى الالتزام بالملفات. للقيام بذلك، قم بإنشاء التزام باستخدام أمر
git commit. يمثل التزام نقطة حفظ في تاريخ المستودع الخاص بك. اكتب التالي لإنشاء التزام:git commit -m "first commit"يقوم هذا الالتزام بجميع ملفاتك، مع إضافة الرسالة "الالتزام الأول". بالنسبة لرسائل الالتزام المستقبلية، سترغب في أن تكون أكثر وصفية في وصفك لتوضيح نوع التغيير الذي قمت به.
-
ربط مستودع Git المحلي الخاص بك بـ GitHub. مستودع Git جيد على جهازك، ولكن في مرحلة ما، سترغب في الحصول على نسخة احتياطية من ملفاتك في مكان ما وأيضًا دعوة الآخرين للعمل معك على مستودعك. أحد الأماكن الرائعة للقيام بذلك هو GitHub. تذكر أننا قمنا بالفعل بإنشاء مستودع على GitHub، لذا فإن الشيء الوحيد الذي نحتاج إلى القيام به هو ربط مستودع Git المحلي الخاص بنا بـ GitHub. سيقوم الأمر
git remote addبذلك. اكتب الأمر التالي:ملاحظة، قبل كتابة الأمر، انتقل إلى صفحة مستودع GitHub الخاص بك للعثور على عنوان URL للمستودع. ستستخدمه في الأمر أدناه. استبدل
https://github.com/username/repository_name.gitبعنوان URL الخاص بـ GitHub.git remote add origin https://github.com/username/repository_name.gitيقوم هذا بإنشاء اتصال، يسمى "origin"، يشير إلى مستودع GitHub الذي أنشأته سابقًا.
-
إرسال الملفات المحلية إلى GitHub. حتى الآن، قمت بإنشاء اتصال بين المستودع المحلي ومستودع GitHub. دعنا نرسل هذه الملفات إلى GitHub باستخدام الأمر التالي
git push، كما يلي:ملاحظة، قد يكون اسم الفرع الخاص بك مختلفًا افتراضيًا عن
main.git push -u origin mainيقوم هذا بإرسال الالتزامات في فرع "main" الخاص بك إلى GitHub. إعداد فرع
upstreamبما في ذلك-uفي الأمر ينشئ رابطًا بين الفرع المحلي والفرع البعيد، بحيث يمكنك ببساطة استخدام git push أو git pull دون تحديد اسم الفرع في المستقبل. سيستخدم Git تلقائيًا الفرع الرئيسي ولن تحتاج إلى تحديد اسم الفرع صراحةً في الأوامر المستقبلية. -
لإضافة المزيد من التغييرات. إذا كنت ترغب في متابعة إجراء تغييرات وإرسالها إلى GitHub، فستحتاج فقط إلى استخدام الأوامر الثلاثة التالية:
git add . git commit -m "type your commit message here" git pushنصيحة، قد ترغب أيضًا في اعتماد ملف
.gitignoreلمنع الملفات التي لا تريد تتبعها من الظهور على GitHub - مثل ملف الملاحظات الذي تخزنه في نفس المجلد ولكنه ليس له مكان في مستودع عام. يمكنك العثور على قوالب لملفات.gitignoreفي .gitignore templates.
رسائل الالتزام
سطر موضوع رائع لالتزام Git يكمل الجملة التالية: إذا تم تطبيقه، فإن هذا الالتزام سيقوم بـ <سطر الموضوع الخاص بك هنا>
بالنسبة للموضوع، استخدم صيغة الأمر، الزمن الحاضر: "تغيير" وليس "تم التغيير" ولا "تغييرات".
كما هو الحال في الموضوع، في النص (اختياري) أيضًا استخدم صيغة الأمر، الزمن الحاضر. يجب أن يتضمن النص الدافع للتغيير ويقارن ذلك بالسلوك السابق. أنت تشرح لماذا، وليس كيف.
✅ خذ بضع دقائق لتصفح GitHub. هل يمكنك العثور على رسالة التزام رائعة حقًا؟ هل يمكنك العثور على واحدة بسيطة جدًا؟ ما المعلومات التي تعتقد أنها الأكثر أهمية وفائدة لتوصيلها في رسالة الالتزام؟
المهمة: التعاون
السبب الرئيسي لوضع الأشياء على GitHub هو جعل التعاون مع المطورين الآخرين ممكنًا.
العمل على المشاريع مع الآخرين
شاهد الفيديو
في مستودعك، انتقل إلى Insights > Community لترى كيف يقارن مشروعك بمعايير المجتمع الموصى بها.
إليك بعض الأشياء التي يمكن أن تحسن مستودع GitHub الخاص بك:
- الوصف. هل أضفت وصفًا لمشروعك؟
- README. هل أضفت ملف README؟ يوفر GitHub إرشادات لكتابة README.
- إرشادات المساهمة. هل يحتوي مشروعك على إرشادات المساهمة،
- مدونة السلوك. مدونة السلوك،
- الرخصة. ربما الأهم من ذلك، الرخصة؟
كل هذه الموارد ستفيد في استيعاب أعضاء الفريق الجدد. وهذه هي عادةً الأشياء التي ينظر إليها المساهمون الجدد قبل حتى النظر إلى الكود الخاص بك، لمعرفة ما إذا كان مشروعك هو المكان المناسب لهم لقضاء وقتهم.
✅ ملفات README، على الرغم من أنها تستغرق وقتًا لإعدادها، غالبًا ما يتم إهمالها من قبل المشرفين المشغولين. هل يمكنك العثور على مثال لواحد وصفي بشكل خاص؟ ملاحظة: هناك بعض الأدوات التي تساعد في إنشاء ملفات README جيدة قد ترغب في تجربتها.
المهمة: دمج بعض الكود
تساعد وثائق المساهمة الأشخاص على المساهمة في المشروع. تشرح أنواع المساهمات التي تبحث عنها وكيفية عمل العملية. سيحتاج المساهمون إلى المرور بسلسلة من الخطوات ليكونوا قادرين على المساهمة في مستودعك على GitHub:
- استنساخ مستودعك. ربما سترغب في أن يقوم الناس بـ استنساخ مشروعك. يعني الاستنساخ إنشاء نسخة طبق الأصل من مستودعك على ملف تعريف GitHub الخاص بهم.
- النسخ المحلي. من هناك، سيقومون بنسخ المشروع إلى جهازهم المحلي.
- إنشاء فرع. سترغب في أن تطلب منهم إنشاء فرع لعملهم.
- تركيز التغيير على منطقة واحدة. اطلب من المساهمين التركيز على مساهماتهم في شيء واحد في كل مرة - بهذه الطريقة تكون فرص أن تتمكن من دمج عملهم أعلى. تخيل أنهم كتبوا إصلاحًا لخلل، وأضافوا ميزة جديدة، وقاموا بتحديث عدة اختبارات - ماذا لو كنت تريد، أو يمكنك فقط تنفيذ 2 من 3، أو 1 من 3 تغييرات؟
✅ تخيل موقفًا تكون فيه الفروع ضرورية بشكل خاص لكتابة وشحن كود جيد. ما هي حالات الاستخدام التي يمكنك التفكير فيها؟
ملاحظة، كن التغيير الذي تريد رؤيته في العالم، وقم بإنشاء فروع لعملك الخاص أيضًا. أي التزامات تقوم بها سيتم إجراؤها على الفرع الذي "تم التحقق منه" حاليًا. استخدم
git statusلمعرفة الفرع الذي تعمل عليه.
لنمر عبر سير عمل المساهم. افترض أن المساهم قد قام بالفعل بـ استنساخ و نسخ المستودع بحيث يكون لديه مستودع Git جاهز للعمل عليه، على جهازه المحلي:
-
إنشاء فرع. استخدم الأمر
git branchلإنشاء فرع يحتوي على التغييرات التي يعتزم المساهمة بها:git branch [branch-name] -
التبديل إلى الفرع العامل. قم بالتبديل إلى الفرع المحدد وقم بتحديث الدليل العامل باستخدام
git switch:git switch [branch-name] -
القيام بالعمل. في هذه المرحلة، تريد إضافة تغييراتك. لا تنس إخبار Git بذلك باستخدام الأوامر التالية:
git add . git commit -m "my changes"تأكد من إعطاء الالتزام اسمًا جيدًا، من أجلك وكذلك من أجل مشرف المستودع الذي تساعده.
-
دمج عملك مع فرع
main. في مرحلة ما، تكون قد انتهيت من العمل وترغب في دمج عملك مع عمل فرعmain. قد يكون فرعmainقد تغير في هذه الأثناء، لذا تأكد من تحديثه أولاً إلى أحدث إصدار باستخدام الأوامر التالية:git switch main git pullفي هذه المرحلة، تريد التأكد من أن أي تعارضات، وهي حالات لا يستطيع Git بسهولة دمج التغييرات، تحدث في فرع العمل الخاص بك. لذلك قم بتشغيل الأوامر التالية:
git switch [branch_name] git merge mainسيقوم أمر
git merge mainبجلب جميع التغييرات منmainإلى فرعك. نأمل أن تتمكن من المتابعة بسهولة. إذا لم يكن الأمر كذلك، سيخبرك VS Code بالمكان الذي يكون فيه Git مرتبكًا، وستقوم بتعديل الملفات المتأثرة لتحديد المحتوى الأكثر دقة.للتبديل إلى فرع مختلف، استخدم الأمر الحديث
git switch:git switch [branch_name] -
إرسال عملك إلى GitHub. إرسال عملك إلى GitHub يعني شيئين. دفع فرعك إلى مستودعك ثم فتح طلب سحب (Pull Request).
git push --set-upstream origin [branch-name]يقوم الأمر أعلاه بإنشاء الفرع على مستودعك المستنسخ.
-
افتح طلب سحب (PR). بعد ذلك، عليك فتح طلب سحب. يمكنك القيام بذلك من خلال الانتقال إلى المستودع الذي قمت بتفريعه على GitHub. ستجد إشارة على GitHub تسألك ما إذا كنت ترغب في إنشاء طلب سحب جديد، اضغط عليها وستنتقل إلى واجهة حيث يمكنك تعديل عنوان رسالة الالتزام وإضافة وصف أكثر ملاءمة. الآن، سيرى المسؤول عن المستودع الذي قمت بتفريعه هذا الطلب، و_نأمل_ أن يقدر جهودك و_يدمج_ طلبك. تهانينا، لقد أصبحت مساهمًا، رائع! :)
-
تنظيف. من الجيد أن تقوم بـ_تنظيف_ بعد دمج طلب السحب بنجاح. يجب عليك تنظيف الفرع المحلي الخاص بك والفرع الذي قمت بدفعه إلى GitHub. أولاً، احذف الفرع محليًا باستخدام الأمر التالي:
git branch -d [branch-name]
تأكد من الانتقال إلى صفحة GitHub الخاصة بالمستودع الذي قمت بتفريعه وحذف الفرع البعيد الذي قمت بدفعه إليه.
مصطلح Pull request قد يبدو غريبًا بعض الشيء لأنه في الواقع تريد دفع تغييراتك إلى المشروع. ولكن المسؤول (مالك المشروع) أو الفريق الأساسي يحتاج إلى مراجعة تغييراتك قبل دمجها مع الفرع "الرئيسي" للمشروع، لذا فأنت تطلب قرارًا بشأن التغيير من المسؤول.
طلب السحب هو المكان الذي يتم فيه مقارنة ومناقشة الفروقات التي تم إدخالها على فرع معين مع المراجعات، التعليقات، الاختبارات المدمجة، والمزيد. طلب السحب الجيد يتبع تقريبًا نفس قواعد رسالة الالتزام. يمكنك إضافة مرجع إلى مشكلة في متتبع المشاكل، على سبيل المثال عندما تحل عملك مشكلة معينة. يتم ذلك باستخدام # متبوعًا برقم المشكلة، مثل #97.
🤞نأمل أن تمر جميع الفحوصات بنجاح وأن يقوم مالك المشروع بدمج تغييراتك في المشروع🤞
قم بتحديث الفرع المحلي الحالي الخاص بك بجميع الالتزامات الجديدة من الفرع البعيد المقابل على GitHub:
git pull
كيفية المساهمة في المصادر المفتوحة
أولاً، دعنا نجد مستودعًا (repo) على GitHub يثير اهتمامك وترغب في المساهمة فيه. ستحتاج إلى نسخ محتوياته إلى جهازك.
✅ طريقة جيدة للعثور على مستودعات مناسبة للمبتدئين هي البحث باستخدام العلامة 'good-first-issue'.
هناك عدة طرق لنسخ الكود. إحدى الطرق هي "استنساخ" محتويات المستودع باستخدام HTTPS أو SSH أو باستخدام GitHub CLI (واجهة سطر الأوامر).
افتح الطرفية الخاصة بك واستنسخ المستودع كالتالي:
git clone https://github.com/ProjectURL
للعمل على المشروع، انتقل إلى المجلد الصحيح:
cd ProjectURL
يمكنك أيضًا فتح المشروع بالكامل باستخدام Codespaces، محرر الكود المدمج / بيئة التطوير السحابية من GitHub، أو GitHub Desktop.
وأخيرًا، يمكنك تنزيل الكود في مجلد مضغوط.
بعض الأمور المثيرة للاهتمام حول GitHub
يمكنك وضع نجمة، متابعة، أو "تفريع" أي مستودع عام على GitHub. يمكنك العثور على المستودعات التي وضعت لها نجمة في القائمة المنسدلة في الزاوية العلوية اليمنى. إنها مثل الإشارات المرجعية، ولكن للكود.
المشاريع تحتوي على متتبع مشاكل، غالبًا على GitHub في علامة التبويب "Issues" ما لم يُذكر خلاف ذلك، حيث يناقش الأشخاص المشاكل المتعلقة بالمشروع. وعلامة التبويب Pull Requests هي المكان الذي يناقش فيه الأشخاص ويستعرضون التغييرات التي قيد التنفيذ.
قد تحتوي المشاريع أيضًا على مناقشات في المنتديات، قوائم بريدية، أو قنوات دردشة مثل Slack، Discord، أو IRC.
✅ ألقِ نظرة حول المستودع الجديد الخاص بك على GitHub وجرب بعض الأشياء، مثل تعديل الإعدادات، إضافة معلومات إلى المستودع، وإنشاء مشروع (مثل لوحة Kanban). هناك الكثير لتفعله!
🚀 التحدي
تعاون مع صديق للعمل على كود بعضكما البعض. قم بإنشاء مشروع بشكل تعاوني، تفريع الكود، إنشاء فروع، ودمج التغييرات.
اختبار ما بعد المحاضرة
المراجعة والدراسة الذاتية
اقرأ المزيد عن المساهمة في البرمجيات مفتوحة المصدر.
مارس، مارس، مارس. GitHub يوفر مسارات تعليمية رائعة عبر skills.github.com:
ستجد أيضًا دورات أكثر تقدمًا.
الواجب
أكمل دورة الأسبوع الأول على GitHub
إخلاء المسؤولية:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.



