|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "05666cecb8983a72cf0ce1d18932b5b7",
|
|
|
"translation_date": "2025-08-25T22:43:23+00:00",
|
|
|
"source_file": "1-getting-started-lessons/2-github-basics/README.md",
|
|
|
"language_code": "ar"
|
|
|
}
|
|
|
-->
|
|
|
# مقدمة إلى GitHub
|
|
|
|
|
|
تتناول هذه الدرس أساسيات GitHub، وهي منصة لاستضافة وإدارة التغييرات في الكود الخاص بك.
|
|
|
|
|
|

|
|
|
> رسم توضيحي بواسطة [Tomomi Imura](https://twitter.com/girlie_mac)
|
|
|
|
|
|
## اختبار ما قبل المحاضرة
|
|
|
[اختبار ما قبل المحاضرة](https://ff-quizzes.netlify.app/web/quiz/3)
|
|
|
|
|
|
## المقدمة
|
|
|
|
|
|
في هذه الدرس، سنتناول:
|
|
|
|
|
|
- تتبع العمل الذي تقوم به على جهازك
|
|
|
- العمل على المشاريع مع الآخرين
|
|
|
- كيفية المساهمة في البرمجيات مفتوحة المصدر
|
|
|
|
|
|
### المتطلبات الأساسية
|
|
|
|
|
|
قبل البدء، تحتاج إلى التحقق مما إذا كان Git مثبتًا. في الطرفية، اكتب:
|
|
|
`git --version`
|
|
|
|
|
|
إذا لم يكن Git مثبتًا، [قم بتنزيل Git](https://git-scm.com/downloads). ثم قم بإعداد ملف تعريف 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](https://github.com/) وقم بإنشاء حساب إذا لم تكن قد فعلت ذلك بالفعل، أو قم بتسجيل الدخول واملأ ملفك الشخصي.
|
|
|
|
|
|
✅ GitHub ليس مستودع الكود الوحيد في العالم؛ هناك مستودعات أخرى، لكن GitHub هو الأكثر شهرة.
|
|
|
|
|
|
### التحضير
|
|
|
|
|
|
ستحتاج إلى مجلد يحتوي على مشروع كود على جهازك المحلي (الكمبيوتر المحمول أو الكمبيوتر الشخصي)، ومستودع عام على GitHub، والذي سيعمل كمثال على كيفية المساهمة في مشاريع الآخرين.
|
|
|
|
|
|
---
|
|
|
|
|
|
## إدارة الكود
|
|
|
|
|
|
لنفترض أن لديك مجلدًا محليًا يحتوي على مشروع كود وترغب في البدء بتتبع تقدمك باستخدام Git - نظام التحكم في الإصدارات. يقارن بعض الأشخاص استخدام Git بكتابة رسالة حب لنفسك المستقبلية. عند قراءة رسائل الالتزام الخاصة بك بعد أيام أو أسابيع أو أشهر، ستتمكن من تذكر سبب اتخاذك قرارًا معينًا أو "التراجع" عن تغيير - وهذا عندما تكتب رسائل "التزام" جيدة.
|
|
|
|
|
|
### المهمة: إنشاء مستودع والالتزام بالكود
|
|
|
|
|
|
> شاهد الفيديو
|
|
|
>
|
|
|
> [](https://www.youtube.com/watch?v=9R31OUPpxU4)
|
|
|
|
|
|
1. **إنشاء مستودع على GitHub**. على GitHub.com، في علامة تبويب المستودعات، أو من شريط التنقل العلوي الأيمن، ابحث عن زر **repo جديد**.
|
|
|
|
|
|
1. امنح مستودعك (المجلد) اسمًا.
|
|
|
1. اختر **إنشاء مستودع**.
|
|
|
|
|
|
1. **انتقل إلى مجلد العمل الخاص بك**. في الطرفية، انتقل إلى المجلد (المعروف أيضًا بالدليل) الذي تريد البدء بتتبعه. اكتب:
|
|
|
|
|
|
```bash
|
|
|
cd [name of your folder]
|
|
|
```
|
|
|
|
|
|
1. **تهيئة مستودع Git**. في مشروعك، اكتب:
|
|
|
|
|
|
```bash
|
|
|
git init
|
|
|
```
|
|
|
|
|
|
1. **التحقق من الحالة**. للتحقق من حالة المستودع الخاص بك، اكتب:
|
|
|
|
|
|
```bash
|
|
|
git status
|
|
|
```
|
|
|
|
|
|
قد يبدو الإخراج شيئًا مثل هذا:
|
|
|
|
|
|
```output
|
|
|
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` بأشياء مثل الملفات الجاهزة ليتم _حفظها_ في المستودع أو التي تحتوي على تغييرات قد ترغب في الاحتفاظ بها.
|
|
|
|
|
|
1. **إضافة جميع الملفات للتتبع**
|
|
|
يُطلق على هذا أيضًا مرحلة الملفات/إضافة الملفات إلى منطقة المرحلة.
|
|
|
|
|
|
```bash
|
|
|
git add .
|
|
|
```
|
|
|
|
|
|
يشير الأمر `git add` مع الحجة `.` إلى أن جميع ملفاتك وتغييراتك جاهزة للتتبع.
|
|
|
|
|
|
1. **إضافة ملفات محددة للتتبع**
|
|
|
|
|
|
```bash
|
|
|
git add [file or folder name]
|
|
|
```
|
|
|
|
|
|
يساعدنا هذا في إضافة ملفات محددة فقط إلى منطقة المرحلة عندما لا نريد الالتزام بجميع الملفات دفعة واحدة.
|
|
|
|
|
|
1. **إلغاء مرحلة جميع الملفات**
|
|
|
|
|
|
```bash
|
|
|
git reset
|
|
|
```
|
|
|
|
|
|
يساعدنا هذا الأمر في إلغاء مرحلة جميع الملفات دفعة واحدة.
|
|
|
|
|
|
1. **إلغاء مرحلة ملف معين**
|
|
|
|
|
|
```bash
|
|
|
git reset [file or folder name]
|
|
|
```
|
|
|
|
|
|
يساعدنا هذا الأمر في إلغاء مرحلة ملف معين فقط دفعة واحدة الذي لا نريد تضمينه في الالتزام التالي.
|
|
|
|
|
|
1. **الاحتفاظ بعملك**. في هذه المرحلة، أضفت الملفات إلى ما يسمى _منطقة المرحلة_. مكان حيث يقوم Git بتتبع ملفاتك. لجعل التغيير دائمًا، تحتاج إلى _الالتزام_ بالملفات. للقيام بذلك، قم بإنشاء _التزام_ باستخدام أمر `git commit`. يمثل _الالتزام_ نقطة حفظ في تاريخ المستودع الخاص بك. اكتب ما يلي لإنشاء _التزام_:
|
|
|
|
|
|
```bash
|
|
|
git commit -m "first commit"
|
|
|
```
|
|
|
|
|
|
هذا يلتزم بجميع ملفاتك، مضيفًا الرسالة "الالتزام الأول". بالنسبة لرسائل الالتزام المستقبلية، سترغب في أن تكون أكثر وصفية في وصفك لتوضيح نوع التغيير الذي أجريته.
|
|
|
|
|
|
1. **ربط مستودع Git المحلي الخاص بك بـ GitHub**. مستودع Git جيد على جهازك، ولكن في مرحلة ما، سترغب في الحصول على نسخة احتياطية من ملفاتك في مكان ما وأيضًا دعوة أشخاص آخرين للعمل معك على مستودعك. أحد الأماكن الرائعة للقيام بذلك هو GitHub. تذكر أننا أنشأنا بالفعل مستودعًا على GitHub، لذا الشيء الوحيد الذي نحتاج إلى القيام به هو ربط مستودع Git المحلي الخاص بك بـ GitHub. سيقوم الأمر `git remote add` بذلك. اكتب الأمر التالي:
|
|
|
|
|
|
> ملاحظة، قبل كتابة الأمر، انتقل إلى صفحة مستودع GitHub الخاص بك للعثور على عنوان URL للمستودع. ستستخدمه في الأمر أدناه. استبدل ```https://github.com/username/repository_name.git``` بعنوان URL الخاص بـ GitHub.
|
|
|
|
|
|
```bash
|
|
|
git remote add origin https://github.com/username/repository_name.git
|
|
|
```
|
|
|
|
|
|
هذا ينشئ _اتصالًا_، يسمى "origin"، يشير إلى مستودع GitHub الذي أنشأته سابقًا.
|
|
|
|
|
|
1. **إرسال الملفات المحلية إلى GitHub**. حتى الآن، أنشأت _اتصالًا_ بين المستودع المحلي ومستودع GitHub. دعنا نرسل هذه الملفات إلى GitHub باستخدام الأمر التالي `git push`، كما يلي:
|
|
|
|
|
|
> ملاحظة، قد يكون اسم الفرع الخاص بك مختلفًا افتراضيًا عن ```main```.
|
|
|
|
|
|
```bash
|
|
|
git push -u origin main
|
|
|
```
|
|
|
|
|
|
هذا يرسل الالتزامات في فرع "main" الخاص بك إلى GitHub.
|
|
|
|
|
|
2. **لإضافة المزيد من التغييرات**. إذا كنت ترغب في الاستمرار في إجراء تغييرات ودفعها إلى GitHub، فستحتاج فقط إلى استخدام الأوامر الثلاثة التالية:
|
|
|
|
|
|
```bash
|
|
|
git add .
|
|
|
git commit -m "type your commit message here"
|
|
|
git push
|
|
|
```
|
|
|
|
|
|
> نصيحة، قد ترغب أيضًا في اعتماد ملف `.gitignore` لمنع الملفات التي لا تريد تتبعها من الظهور على GitHub - مثل ملف الملاحظات الذي تخزنه في نفس المجلد ولكنه ليس له مكان في مستودع عام. يمكنك العثور على قوالب لملفات `.gitignore` في [.gitignore templates](https://github.com/github/gitignore).
|
|
|
|
|
|
#### رسائل الالتزام
|
|
|
|
|
|
سطر موضوع الالتزام الجيد في Git يكمل الجملة التالية:
|
|
|
إذا تم تطبيقه، فإن هذا الالتزام سيقوم بـ <سطر الموضوع الخاص بك هنا>
|
|
|
|
|
|
بالنسبة للموضوع، استخدم صيغة الأمر، الزمن الحاضر: "تغيير" وليس "تم تغييره" ولا "تغييرات".
|
|
|
كما هو الحال في الموضوع، في النص (اختياري) أيضًا استخدم صيغة الأمر، الزمن الحاضر. يجب أن يتضمن النص الدافع للتغيير ويقارن ذلك بالسلوك السابق. أنت تشرح `لماذا`، وليس `كيف`.
|
|
|
|
|
|
✅ خذ بضع دقائق لتصفح GitHub. هل يمكنك العثور على رسالة التزام رائعة حقًا؟ هل يمكنك العثور على واحدة بسيطة جدًا؟ ما المعلومات التي تعتقد أنها الأكثر أهمية وفائدة لتوصيلها في رسالة الالتزام؟
|
|
|
|
|
|
### المهمة: التعاون
|
|
|
|
|
|
السبب الرئيسي لوضع الأشياء على GitHub هو جعل التعاون مع المطورين الآخرين ممكنًا.
|
|
|
|
|
|
## العمل على المشاريع مع الآخرين
|
|
|
|
|
|
> شاهد الفيديو
|
|
|
>
|
|
|
> [](https://www.youtube.com/watch?v=bFCM-PC3cu8)
|
|
|
|
|
|
في مستودعك، انتقل إلى `Insights > Community` لترى كيف يقارن مشروعك بمعايير المجتمع الموصى بها.
|
|
|
|
|
|
إليك بعض الأشياء التي يمكن أن تحسن مستودع GitHub الخاص بك:
|
|
|
- **الوصف**. هل أضفت وصفًا لمشروعك؟
|
|
|
- **README**. هل أضفت ملف README؟ يوفر GitHub إرشادات لكتابة [README](https://docs.github.com/articles/about-readmes/?WT.mc_id=academic-77807-sagibbon).
|
|
|
- **إرشادات المساهمة**. هل يحتوي مشروعك على [إرشادات المساهمة](https://docs.github.com/articles/setting-guidelines-for-repository-contributors/?WT.mc_id=academic-77807-sagibbon)،
|
|
|
- **مدونة السلوك**. [مدونة السلوك](https://docs.github.com/articles/adding-a-code-of-conduct-to-your-project/)،
|
|
|
- **الرخصة**. ربما الأهم من ذلك، [الرخصة](https://docs.github.com/articles/adding-a-license-to-a-repository/)؟
|
|
|
|
|
|
كل هذه الموارد ستفيد في استيعاب أعضاء الفريق الجدد. وهذه هي عادةً الأشياء التي ينظر إليها المساهمون الجدد قبل حتى النظر إلى الكود الخاص بك، لمعرفة ما إذا كان مشروعك هو المكان المناسب لهم لقضاء وقتهم.
|
|
|
|
|
|
✅ ملفات README، على الرغم من أنها تستغرق وقتًا للإعداد، غالبًا ما يتم إهمالها من قبل المشرفين المشغولين. هل يمكنك العثور على مثال لواحد وصفي بشكل خاص؟ ملاحظة: هناك بعض [الأدوات التي تساعد في إنشاء ملفات README جيدة](https://www.makeareadme.com/) قد ترغب في تجربتها.
|
|
|
|
|
|
### المهمة: دمج بعض الكود
|
|
|
|
|
|
تساعد وثائق المساهمة الأشخاص على المساهمة في المشروع. تشرح أنواع المساهمات التي تبحث عنها وكيفية عمل العملية. سيحتاج المساهمون إلى المرور بسلسلة من الخطوات ليكونوا قادرين على المساهمة في مستودعك على GitHub:
|
|
|
|
|
|
1. **تفرع مستودعك**. ربما سترغب في أن يقوم الناس بـ _تفرع_ مشروعك. التفرع يعني إنشاء نسخة طبق الأصل من مستودعك على ملف تعريف GitHub الخاص بهم.
|
|
|
1. **الاستنساخ**. من هناك، سيقومون باستنساخ المشروع إلى جهازهم المحلي.
|
|
|
1. **إنشاء فرع**. سترغب في أن تطلب منهم إنشاء _فرع_ لعملهم.
|
|
|
1. **تركيز التغيير على منطقة واحدة**. اطلب من المساهمين التركيز على مساهماتهم في شيء واحد في كل مرة - بهذه الطريقة تكون فرص أن تتمكن من _دمج_ عملهم أعلى. تخيل أنهم كتبوا إصلاحًا لخلل، وأضافوا ميزة جديدة، وقاموا بتحديث عدة اختبارات - ماذا لو كنت تريد، أو يمكنك فقط تنفيذ 2 من 3، أو 1 من 3 تغييرات؟
|
|
|
|
|
|
✅ تخيل موقفًا تكون فيه الفروع ضرورية بشكل خاص لكتابة وشحن كود جيد. ما الحالات التي يمكنك التفكير فيها؟
|
|
|
|
|
|
> ملاحظة، كن التغيير الذي تريد رؤيته في العالم، وقم بإنشاء فروع لعملك الخاص أيضًا. أي التزامات تقوم بها سيتم إجراؤها على الفرع الذي "تم التحقق منه" حاليًا. استخدم `git status` لمعرفة الفرع الذي تعمل عليه.
|
|
|
|
|
|
لنستعرض سير عمل المساهم. افترض أن المساهم قد قام بالفعل بـ _تفرع_ و _استنساخ_ المستودع بحيث يكون لديه مستودع Git جاهز للعمل عليه، على جهازه المحلي:
|
|
|
|
|
|
1. **إنشاء فرع**. استخدم الأمر `git branch` لإنشاء فرع يحتوي على التغييرات التي يعتزم المساهمة بها:
|
|
|
|
|
|
```bash
|
|
|
git branch [branch-name]
|
|
|
```
|
|
|
|
|
|
1. **التبديل إلى الفرع العامل**. قم بالتبديل إلى الفرع المحدد وقم بتحديث الدليل العامل باستخدام `git switch`:
|
|
|
|
|
|
```bash
|
|
|
git switch [branch-name]
|
|
|
```
|
|
|
|
|
|
1. **العمل**. في هذه المرحلة، تريد إضافة تغييراتك. لا تنس إخبار Git بذلك باستخدام الأوامر التالية:
|
|
|
|
|
|
```bash
|
|
|
git add .
|
|
|
git commit -m "my changes"
|
|
|
```
|
|
|
|
|
|
تأكد من إعطاء الالتزام اسمًا جيدًا، من أجلك ومن أجل مشرف المستودع الذي تساعده.
|
|
|
|
|
|
1. **دمج عملك مع فرع `main`**. في مرحلة ما، تكون قد انتهيت من العمل وترغب في دمج عملك مع عمل فرع `main`. قد يكون فرع `main` قد تغير في هذه الأثناء، لذا تأكد من تحديثه إلى أحدث إصدار باستخدام الأوامر التالية:
|
|
|
|
|
|
```bash
|
|
|
git switch main
|
|
|
git pull
|
|
|
```
|
|
|
|
|
|
في هذه المرحلة، تريد التأكد من أن أي _تعارضات_، وهي حالات لا يستطيع Git بسهولة _دمج_ التغييرات، تحدث في فرع العمل الخاص بك. لذلك قم بتشغيل الأوامر التالية:
|
|
|
|
|
|
```bash
|
|
|
git switch [branch_name]
|
|
|
git merge main
|
|
|
```
|
|
|
|
|
|
سيؤدي ذلك إلى جلب جميع التغييرات من `main` إلى فرعك، ونأمل أن تتمكن من المتابعة. إذا لم يكن الأمر كذلك، فسيخبرك VS Code بالمكان الذي يكون فيه Git _مرتبكًا_، وستقوم بتعديل الملفات المتأثرة لتحديد المحتوى الأكثر دقة.
|
|
|
|
|
|
1. **إرسال عملك إلى GitHub**. إرسال عملك إلى GitHub يعني شيئين. دفع فرعك إلى مستودعك ثم فتح PR، طلب سحب.
|
|
|
|
|
|
```bash
|
|
|
git push --set-upstream origin [branch-name]
|
|
|
```
|
|
|
|
|
|
ينشئ الأمر أعلاه الفرع على مستودعك المتفرع.
|
|
|
|
|
|
1. **فتح PR**. بعد ذلك، تريد فتح PR. يمكنك القيام بذلك عن طريق الانتقال إلى المستودع المتفرع على GitHub. سترى مؤشرًا على GitHub يسألك عما إذا كنت تريد إنشاء PR جديد، انقر فوق ذلك وستنتقل إلى واجهة حيث يمكنك تغيير عنوان رسالة الالتزام، وإعطائها وصفًا أكثر ملاءمة. الآن سيرى مشرف المستودع الذي قمت بتفرعه هذا PR و _أصابعك متقاطعة_ سيقدرونه و _يدمجون_ PR الخاص بك. أنت الآن مساهم، رائع :)
|
|
|
|
|
|
1. **تنظيف**. يعتبر تنظيف الفروع بعد دمج PR بنجاح ممارسة جيدة. تريد تنظيف الفرع المحلي الخاص بك والفرع الذي دفعته إلى GitHub. أولاً، دعنا نحذفه محليًا باستخدام الأمر التالي:
|
|
|
|
|
|
```bash
|
|
|
git branch -d [branch-name]
|
|
|
```
|
|
|
تأكد من الذهاب إلى صفحة GitHub الخاصة بالمستودع المتشعب بعد ذلك وإزالة الفرع البعيد الذي قمت بدفعه إليه.
|
|
|
|
|
|
`طلب السحب` يبدو مصطلحًا غريبًا لأنه في الواقع تريد دفع تغييراتك إلى المشروع. ولكن المالك (صاحب المشروع) أو الفريق الأساسي يحتاج إلى مراجعة تغييراتك قبل دمجها مع الفرع "الرئيسي" للمشروع، لذا فأنت في الحقيقة تطلب قرارًا بشأن التغيير من المالك.
|
|
|
|
|
|
طلب السحب هو المكان الذي تتم فيه مقارنة ومناقشة الفروقات التي تم إدخالها على فرع معين من خلال المراجعات، التعليقات، الاختبارات المدمجة، والمزيد. طلب السحب الجيد يتبع تقريبًا نفس القواعد الخاصة برسالة الالتزام. يمكنك إضافة إشارة إلى مشكلة في متتبع المشاكل، على سبيل المثال إذا كان عملك يحل مشكلة معينة. يتم ذلك باستخدام `#` متبوعًا برقم المشكلة. على سبيل المثال `#97`.
|
|
|
|
|
|
🤞نأمل أن تجتاز جميع الفحوصات وأن يقوم مالك المشروع بدمج تغييراتك في المشروع🤞
|
|
|
|
|
|
قم بتحديث الفرع المحلي الحالي الخاص بك بجميع الالتزامات الجديدة من الفرع البعيد المقابل على GitHub:
|
|
|
|
|
|
`git pull`
|
|
|
|
|
|
## كيفية المساهمة في المصادر المفتوحة
|
|
|
|
|
|
أولاً، دعنا نجد مستودعًا (**repo**) على GitHub يثير اهتمامك وترغب في المساهمة فيه. ستحتاج إلى نسخ محتوياته إلى جهازك.
|
|
|
|
|
|
✅ طريقة جيدة للعثور على مستودعات مناسبة للمبتدئين هي [البحث باستخدام الوسم 'good-first-issue'](https://github.blog/2020-01-22-browse-good-first-issues-to-start-contributing-to-open-source/).
|
|
|
|
|
|

|
|
|
|
|
|
هناك عدة طرق لنسخ الكود. إحدى الطرق هي "استنساخ" محتويات المستودع باستخدام HTTPS، SSH، أو باستخدام GitHub CLI (واجهة سطر الأوامر).
|
|
|
|
|
|
افتح الطرفية الخاصة بك واستنسخ المستودع كالتالي:
|
|
|
`git clone https://github.com/ProjectURL`
|
|
|
|
|
|
للعمل على المشروع، انتقل إلى المجلد الصحيح:
|
|
|
`cd ProjectURL`
|
|
|
|
|
|
يمكنك أيضًا فتح المشروع بالكامل باستخدام [Codespaces](https://github.com/features/codespaces)، محرر الكود المدمج / بيئة التطوير السحابية من GitHub، أو [GitHub Desktop](https://desktop.github.com/).
|
|
|
|
|
|
وأخيرًا، يمكنك تنزيل الكود في مجلد مضغوط.
|
|
|
|
|
|
### بعض الأمور المثيرة للاهتمام حول GitHub
|
|
|
|
|
|
يمكنك وضع نجمة، متابعة، أو "تشعب" أي مستودع عام على GitHub. يمكنك العثور على المستودعات التي وضعت لها نجمة في قائمة منسدلة في الزاوية العلوية اليمنى. يشبه ذلك الإشارات المرجعية، ولكن للكود.
|
|
|
|
|
|
تحتوي المشاريع على متتبع للمشاكل، غالبًا في علامة التبويب "Issues" على GitHub ما لم يُذكر خلاف ذلك، حيث يناقش الأشخاص المشاكل المتعلقة بالمشروع. وعلامة التبويب "Pull Requests" هي المكان الذي يناقش فيه الأشخاص ويستعرضون التغييرات التي قيد التنفيذ.
|
|
|
|
|
|
قد تحتوي المشاريع أيضًا على مناقشات في المنتديات، قوائم بريدية، أو قنوات دردشة مثل Slack، Discord، أو IRC.
|
|
|
|
|
|
✅ ألقِ نظرة حول المستودع الجديد الخاص بك على GitHub وجرب بعض الأشياء، مثل تعديل الإعدادات، إضافة معلومات إلى المستودع، وإنشاء مشروع (مثل لوحة Kanban). هناك الكثير لتفعله!
|
|
|
|
|
|
---
|
|
|
|
|
|
## 🚀 التحدي
|
|
|
|
|
|
تعاون مع صديق للعمل على كود بعضكما البعض. أنشئ مشروعًا بشكل تعاوني، قم بتشعب الكود، أنشئ فروعًا، وادمج التغييرات.
|
|
|
|
|
|
## اختبار ما بعد المحاضرة
|
|
|
[اختبار ما بعد المحاضرة](https://ff-quizzes.netlify.app/web/quiz/4)
|
|
|
|
|
|
## المراجعة والدراسة الذاتية
|
|
|
|
|
|
اقرأ المزيد عن [المساهمة في برمجيات المصادر المفتوحة](https://opensource.guide/how-to-contribute/#how-to-submit-a-contribution).
|
|
|
|
|
|
[ورقة غش Git](https://training.github.com/downloads/github-git-cheat-sheet/).
|
|
|
|
|
|
مارس، مارس، مارس. GitHub لديه مسارات تعليمية رائعة متاحة عبر [skills.github.com](https://skills.github.com):
|
|
|
|
|
|
- [الأسبوع الأول على GitHub](https://skills.github.com/#first-week-on-github)
|
|
|
|
|
|
ستجد أيضًا دورات أكثر تقدمًا.
|
|
|
|
|
|
## الواجب
|
|
|
|
|
|
أكمل [دورة الأسبوع الأول على GitHub](https://skills.github.com/#first-week-on-github)
|
|
|
|
|
|
**إخلاء المسؤولية**:
|
|
|
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. |