# شرح GitHub للمبتدئين: من أول مستودع إلى مشروع التخرج وصفحة حسابك

> **الخلاصة**: شرح GitHub للمبتدئين يبدأ بتمرين Hello World الرسمي: تنشئ مستودعاً، ثم فرعاً، وتحفظ تعديلاً بـ commit، وتفتح pull request وتدمجه، كله من المتصفح ودون تثبيت Git. وGit هو النظام الذي يتتبع تغييرات ملفاتك، أما GitHub فالمنصة التي تستضيف المستودعات وتضيف أدوات التعاون.
>
> تسوى تعرض عروض الطلاب الحالية في السعودية على [جيت هب](https://tiswa.app/deals/github-student-pack/)، [جيت براينز](https://tiswa.app/deals/jetbrains/) و[نوشن](https://tiswa.app/deals/notion/).

**أهم النقاط**

- Git يتتبع التغييرات، وGitHub يستضيف المستودع ويضيف المراجعة والتعاون.
- تمرين Hello World لا يحتاج كوداً ولا سطر أوامر ولا تثبيت Git.
- صفحة حسابك تعرض README من مستودع عام يحمل اسم المستخدم نفسه.
- GitHub Pages ينشر موقعك مجاناً من مستودع عام، بحد 1 جيجابايت للموقع.
- لا ترفع كلمة مرور أو مفتاح API إلى أي مستودع.

![شرح جيت هب للمبتدئين: من الصفر إلى أول مشروع](https://tiswa.app/assets/blog/github-for-beginners/github-for-beginners-cover-ar.webp)

## ما الفرق بين Git وGitHub؟

Git نظام لإدارة النسخ يتتبع التغييرات في ملفاتك، فتعمل على نسختك من المشروع وتسجل تاريخ تعديلاتها وتدمج عملك مع عمل غيرك. وGitHub منصة سحابية تستضيف هذه المشاريع، واسمها المستودعات، وتضيف إليها أدوات التخطيط والتعاون.[^1] وGit نفسه مجاني ومفتوح المصدر.[^7] ولأنه موزع، فكل نسخة من المستودع على جهاز أي زميل نسخة احتياطية كاملة بتاريخه كله.[^8]

| المصطلح | معناه ببساطة |
|---|---|
| Repository (مستودع) | مجلد المشروع بكل ملفاته وتاريخ تعديلاتها |
| README | ملف يشرح المشروع، يُكتب بلغة Markdown البسيطة |
| Branch (فرع) | نسخة تجرب فيها دون أن تمس النسخة الأساسية main |
| Commit | حفظ لتغيير محدد مع رسالة تشرح سببه |
| Pull request | طلب لدمج تغييرات فرعك في main، يعرض الفروق قبل الدمج |

![بطاقة مقارنة من جدول الدليل (شرح جيت هب للمبتدئين: من الصفر إلى أول مشروع)](https://tiswa.app/assets/blog/github-for-beginners/github-for-beginners-inline-2-ar.webp)


## كيف أنشئ أول مستودع على GitHub؟

اتبع تمرين Hello World نفسه من المتصفح، بعد إنشاء حساب مجاني على github.com:

1. **أنشئ المستودع**: من القائمة في الزاوية العليا من أي صفحة اختر + > New repository، وسمّه hello-world، وفعّل Add a README file، ثم Create repository.[^2]
2. **أنشئ فرعاً**: في تبويب Code اضغط قائمة الفرع المكتوب عليها main، واكتب readme-edits، ثم اختر Create branch.[^2]
3. **عدّل الملف**: وأنت في الفرع الجديد افتح README.md واضغط أيقونة التعديل، واكتب سطرين عن نفسك وتخصصك.
4. **احفظ بـ commit**: اضغط Commit changes واكتب رسالة تقول ماذا غيرت. كل commit يحمل رسالة تشرح سبب التغيير.[^2]
5. **افتح pull request**: من Pull requests > New pull request قارن readme-edits مع main، وراجع الفروق، ثم Create pull request.[^2]
6. **ادمج واحذف الفرع**: اضغط Merge pull request ثم أكّد، وبعدها احذف الفرع readme-edits بأمان لأن تغييراته صارت في main.[^2]

![مخطط من 5 خطوات: أنشئ مستودع / أنشئ فرع / عدّل وسوّ commit / افتح pull request / ادمج](https://tiswa.app/assets/blog/github-for-beginners/github-for-beginners-inline-1-ar.webp)


وإذا تعارضت تغييراتك مع تغييرات زميل في السطر نفسه، ينبهك GitHub ويمنع الدمج حتى تحل التعارض.[^2] هذه ليست مشكلة، بل هي سبب وجود الـ pull request أصلاً.

## هل أحتاج تعلم البرمجة من الصفر قبل GitHub؟

لا. التمرين السابق لا يتطلب معرفة بالبرمجة ولا بسطر الأوامر.[^2] لكن GitHub يصبح مفيداً حقاً حين يكون عندك شيء ترفعه: حل تمارين، أو صفحة HTML، أو سكربت بايثون صغير. فإن كنت في البداية، فاجمع الأمرين معاً بالخطة في [كيف اتعلم البرمجة من الصفر](https://tiswa.app/blog/learn-programming-from-zero/)، وارفع كل تمرين تنهيه.

أما سطر الأوامر فستحتاجه مع الوقت. وحتى تتعود، يغنيك GitHub Desktop: تطبيق مجاني ومفتوح المصدر بواجهة رسومية، يعرض تغييراتك بوضوح ويعمل على Windows وmacOS.[^6]

## كيف أستخدم GitHub في مشروع التخرج؟

مستودع واحد للفريق، وفرع لكل مهمة، ومراجعة قبل كل دمج. أنشئ المستودع في الأسبوع الأول وأضف زملاءك إليه، وليعمل كل واحد في فرع باسم مهمته، مثل login-page أو database-schema. ومن ينهي مهمته يفتح pull request، ويراجعه زميل آخر قبل الدمج. بهذا لا يضيع عمل أحد، وترجعون إلى أي نسخة سابقة إن تعطل شيء ليلة التسليم. واكتبوا في README طريقة تشغيل المشروع وتوزيع المهام، فالمشرف يفتحه أولاً. وتفاصيل المراجعة وتسمية الفروع في [تعلم Git للطلاب](https://tiswa.app/blog/git-group-project-branches-review/).

وأكثر ما يفسد المشاريع الجماعية ليس الكود، بل العمل المباشر على main. زميل يعدل الملف نفسه الذي تعدله أنت، ثم يرفع نسخته فوق نسختك قبل العرض بساعة. اتفقوا من اليوم الأول على قاعدة واحدة: لا أحد يدمج فرعه بنفسه. ومن يتأخر في مراجعة طلب زميله يؤخر الفريق كله، فحددوا يوماً في الأسبوع للمراجعة، ودوّنوا في README من يراجع ماذا.

## هل يفيد GitHub في التدريب التعاوني لطلاب علوم الحاسب؟

يفيد، لأن صفحة حسابك تصبح سيرتك التقنية. يعرض GitHub ملف README خاصاً في أعلى صفحة حسابك إذا اجتمعت هذه الشروط:[^3]

- مستودع اسمه مطابق لاسم المستخدم حرفاً بحرف.
- المستودع عام (public).
- فيه ملف README.md في المجلد الرئيسي.
- الملف غير فارغ.

ويختفي README من صفحتك إذا أفرغت الملف أو جعلت المستودع خاصاً أو غيرت أحد الاسمين.[^3] اكتب فيه سطراً عن تخصصك وجامعتك، والمهارات التي تتعلمها الآن، وروابط أفضل مشروعين عندك. ولربط ذلك بطلبات التدريب اقرأ [ملف أعمال علوم الحاسب للتدريب التعاوني](https://tiswa.app/blog/computer-science-coop-portfolio/). وهذا قالب تعطيه لأي مساعد ذكاء اصطناعي:

README لصفحة الحساب:

```
اكتب لي ملف README.md لصفحة حسابي على GitHub. أنا طالب [التخصص] في [الجامعة]، مهتم بـ [المجال]. أتعلم حالياً [المهارات]. أفضل مشاريعي: [اسم المشروع ورابطه ووصفه في سطر]. اجعله قصيراً بالعربية والإنجليزية، بعناوين Markdown بسيطة، ودون مبالغة في وصف مستواي.
```

## كيف أنشر موقعي مجاناً على GitHub Pages؟

GitHub Pages يأخذ ملفات HTML وCSS وJavaScript من مستودعك وينشرها موقعاً على عنوان github.io، ويتاح مجاناً في المستودعات العامة.[^4] حجم الموقع لا يتجاوز 1 جيجابايت، وحد الاستهلاك المرن 100 جيجابايت شهرياً، وهو أكثر من كافٍ لملف أعمال طالب.[^5] لكنه ليس لمتجر إلكتروني أو موقع تجاري.[^5] ابنِ الصفحة أولاً بـ [تعلم HTML وCSS](https://tiswa.app/blog/learn-html-css/)، ثم رتب محتواها بخطوات [بناء ملف أعمال](https://tiswa.app/blog/build-a-portfolio/).

## كيف أكتب رسالة commit وملف README يفهمهما غيري؟

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

| رسالة ضعيفة | رسالة واضحة |
|---|---|
| update | Add login form validation |
| fix | Fix crash when the cart is empty |
| asdf | Translate homepage headings to Arabic |
| final final 2 | Remove unused images from assets folder |

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

## ما أخطاء المبتدئين في GitHub؟

- رفع كلمة مرور أو مفتاح API داخل الكود. احذفه وغيّر المفتاح فوراً، فحذفه من آخر نسخة لا يمحوه من التاريخ.
- العمل أسابيع ثم رفع كل شيء في commit واحد، فيضيع تاريخ المشروع.
- رسائل مثل update أو fix. اكتب ماذا تغير: Fix crash when the cart is empty.
- مستودع بلا README، فلا يعرف الزائر ما المشروع ولا كيف يشغله.
- نشر حلول واجبات ما زالت مطلوبة من دفعة أخرى. راجع سياسة المقرر قبل جعل المستودع عاماً.

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

## هل GitHub مجاني للطلاب؟

الخطة المجانية تكفي الطالب لمستودعات مشاريعه، وتنشر موقعه على Pages من مستودع عام دون أن يدفع شيئاً.[^4] وبالبريد الجامعي تتقدم إلى حزمة الطلاب التي تفتح أدوات مطورين مدفوعة مجاناً، والخطوات في [حزمة GitHub للطلاب](https://tiswa.app/blog/github-student-developer-pack/).

> **رأي تسوى**: رأي تسوى: لا تفتح حساب GitHub لتجمّله. افتحه لترفع إليه كل تمرين تنهيه، ولو كان صغيراً، طوال فصل كامل. جهة التدريب التي تفتح صفحتك ترى أربعين commit موزعة على أشهر، وهذا يقنعها أكثر من مشروع واحد لامع رُفع في يوم. ومن يدرس تخصصاً غير تقني لا يحتاج إلى GitHub إلا إن كان يكتب كوداً أو يبني موقعاً، فلا تضيّع عليه وقتك.

لابتوب البرمجة وأدوات المطورين لها أسعار طلاب. تسوى يجمعها في [عروض طلاب علوم الحاسب](https://tiswa.app/deals/majors/computer-science/). [انضم إلى تسوى](https://tiswa.app/join/)

## أسئلة

### هل GitHub مجاني للطلاب؟

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

### هل أحتاج تعلم البرمجة من الصفر قبل GitHub؟

لا. تمرين Hello World الرسمي لا يحتاج كوداً ولا سطر أوامر، لكن الفائدة الحقيقية تبدأ حين ترفع تمارينك.

### كيف أستخدم GitHub في مشروع التخرج؟

مستودع واحد للفريق، وفرع لكل مهمة، وpull request يراجعه زميل قبل الدمج إلى main.

### ما الفرق بين Git وGitHub؟

Git نظام مجاني يتتبع تغييرات الملفات على جهازك، وGitHub منصة تستضيف المستودعات وتضيف أدوات المراجعة والتعاون.

### كيف أعمل README لصفحة حسابي؟

أنشئ مستودعاً عاماً باسم المستخدم نفسه، وضع فيه ملف README.md غير فارغ، فيظهر أعلى صفحة حسابك.


## المصادر

[^1]: GitHub Docs: About GitHub and Git, https://docs.github.com/en/get-started/start-your-journey/about-github-and-git
[^2]: GitHub Docs: Hello World, https://docs.github.com/en/get-started/using-github/hello-world
[^3]: GitHub Docs: Managing your profile README, https://docs.github.com/en/account-and-profile/how-tos/profile-customization/managing-your-profile-readme
[^4]: GitHub Docs: What is GitHub Pages?, https://docs.github.com/en/pages/getting-started-with-github-pages/what-is-github-pages
[^5]: GitHub Docs: GitHub Pages limits, https://docs.github.com/en/pages/getting-started-with-github-pages/github-pages-limits
[^6]: GitHub Docs: About GitHub Desktop, https://docs.github.com/en/desktop/overview/about-github-desktop
[^7]: Git: the official Git website, https://git-scm.com/
[^8]: Pro Git book: About Version Control, https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control
