|
|
1 month ago | |
|---|---|---|
| .. | ||
| README.md | 1 month ago | |
README.md
مقدمة إلى GitHub
GitHub هو واحد من أهم المنصات في تطوير الويب الحديث، حيث يعمل كعمود فقري تعاوني لملايين المطورين حول العالم. فكر فيه كأنه مزيج بين تخزين سحابي للكود وشبكة اجتماعية للمبرمجين – إنه المكان الذي يشارك فيه المطورون أعمالهم، يتعاونون في المشاريع، ويساهمون في مجتمع المصادر المفتوحة الذي يدعم جزءًا كبيرًا من الإنترنت الذي تستخدمه يوميًا.
في هذه الدرس، ستكتشف كيف يغير GitHub طريقة عمل المطورين معًا. ستتعلم كيفية تتبع التغييرات في الكود الخاص بك، التعاون مع الآخرين بسلاسة، وحتى المساهمة في المشاريع التي يستخدمها ملايين الأشخاص. هذا ليس مجرد تخزين الكود عبر الإنترنت – بل هو الانضمام إلى مجتمع عالمي من المطورين وتعلم أساليب العمل الأساسية التي يستخدمها كل مطور محترف.
بنهاية هذا الدرس، سيكون لديك مستودع GitHub خاص بك، وستفهم كيفية إدارة تغييرات الكود باستخدام Git، وستعرف كيفية المساهمة في مشاريع المصادر المفتوحة. هذه المهارات ستكون أساسًا لك للتعاون مع مطورين آخرين طوال رحلتك في تطوير الويب. دعونا نبدأ ونكتشف قوة البرمجة التعاونية!
رسم توضيحي بواسطة Tomomi Imura
اختبار ما قبل المحاضرة
المقدمة
قبل أن نبدأ في أنشطة GitHub العملية، دعونا نؤسس الأساس الذي ستحتاجه للنجاح. فهم المفاهيم الرئيسية وضمان إعداد بيئة التطوير بشكل صحيح سيجعل رحلتك مع GitHub أكثر سلاسة.
في هذا القسم، سنغطي المعرفة والأدوات الأساسية التي يحتاجها كل مطور عند العمل مع GitHub. لا تقلق إذا بدت بعض المفاهيم غير مألوفة في البداية – سنرشدك خلال كل خطوة ونشرح لماذا هذه الأدوات قيمة جدًا لمطوري الويب.
في هذا الدرس، سنغطي:
- تتبع العمل الذي تقوم به على جهازك
- العمل على المشاريع مع الآخرين
- كيفية المساهمة في برامج المصادر المفتوحة
المتطلبات الأساسية
إعداد بيئة التطوير بشكل صحيح أمر بالغ الأهمية لتجربة سلسة مع GitHub. فكر في هذا كإعداد أدواتك قبل بدء المشروع – وجود الأدوات المناسبة معدة بشكل صحيح سيوفر لك الوقت والإحباط لاحقًا.
دعونا نتأكد من أن لديك كل ما تحتاجه لبدء التعاون مع Git وGitHub بشكل فعال.
قبل أن تبدأ، ستحتاج إلى التحقق مما إذا كان Git مثبتًا. في نافذة الأوامر، اكتب:
git --version
إذا لم يكن Git مثبتًا، قم بتنزيل 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 وقم بإنشاء حساب إذا لم تكن قد أنشأت واحدًا بالفعل، أو قم بتسجيل الدخول واملأ ملفك الشخصي.
💡 نصيحة حديثة: فكر في إعداد مفاتيح SSH أو استخدام GitHub CLI لتسهيل عملية المصادقة بدون كلمات مرور.
✅ GitHub ليس مستودع الكود الوحيد في العالم؛ هناك مستودعات أخرى، لكن GitHub هو الأكثر شهرة.
التحضير
ستحتاج إلى مجلد يحتوي على مشروع كود على جهازك المحلي (الكمبيوتر المحمول أو الكمبيوتر الشخصي)، ومستودع عام على GitHub، والذي سيكون بمثابة مثال على كيفية المساهمة في مشاريع الآخرين.
ممارسات الأمان الحديثة
الأمان في تطوير البرمجيات ليس مجرد أمر مهم – بل هو أمر أساسي. عندما تبدأ رحلتك مع GitHub، فإن تأسيس ممارسات آمنة من البداية سيحمي الكود الخاص بك، والمتعاونين معك، والمشاريع التي تساهم فيها.
تُعطى الأولوية في سير العمل الحديث للتطوير للأمان في كل خطوة. دعونا نستكشف الممارسات الأمنية الرئيسية التي يجب أن يعرفها كل مطور عند العمل مع GitHub وGit.
عند العمل مع GitHub، من المهم اتباع أفضل الممارسات الأمنية:
| مجال الأمان | أفضل الممارسات | لماذا هو مهم |
|---|---|---|
| المصادقة | استخدم مفاتيح SSH أو رموز الوصول الشخصية | كلمات المرور أقل أمانًا ويتم التخلص منها تدريجيًا |
| المصادقة الثنائية | قم بتمكين المصادقة الثنائية على حساب GitHub الخاص بك | تضيف طبقة إضافية من الحماية للحساب |
| أمان المستودع | لا تقم أبدًا بحفظ معلومات حساسة | يجب ألا تكون مفاتيح API وكلمات المرور في المستودعات العامة |
| إدارة التبعيات | قم بتمكين Dependabot للتحديثات | يحافظ على أمان التبعيات وتحديثها |
⚠️ تذكير أمني مهم: لا تقم أبدًا بحفظ مفاتيح API أو كلمات المرور أو أي معلومات حساسة في أي مستودع. استخدم متغيرات البيئة وملفات
.gitignoreلحماية البيانات الحساسة.
إعداد المصادقة الحديثة:
# Generate SSH key (modern ed25519 algorithm)
ssh-keygen -t ed25519 -C "your_email@example.com"
# Set up Git to use SSH
git remote set-url origin git@github.com:username/repository.git
💡 نصيحة احترافية: مفاتيح SSH تلغي الحاجة إلى إدخال كلمات المرور بشكل متكرر وهي أكثر أمانًا من طرق المصادقة التقليدية.
إدارة الكود
الآن بعد أن فهمت أهمية GitHub وقمت بإعداد بيئتك، دعونا ننتقل إلى المهارات العملية التي ستستخدمها يوميًا كمطور. إدارة الكود باستخدام Git تشبه الاحتفاظ بمذكرات مفصلة لتطور مشروعك – كل تغيير، كل قرار، وكل معلم يتم تتبعه وحفظه بعناية.
فكر في Git كآلة زمنية للبرمجة. يمكنك رؤية بالضبط ما الذي تغير، متى تغير، ولماذا تغير. يصبح هذا الأمر ذا قيمة كبيرة عند العمل على مشاريع معقدة أو التعاون مع الآخرين.
لنفترض أن لديك مجلدًا محليًا يحتوي على مشروع كود وترغب في البدء في تتبع تقدمك باستخدام Git - نظام التحكم في الإصدارات. يقارن البعض استخدام Git بكتابة رسالة حب لنفسك المستقبلية. عند قراءة رسائل الحفظ الخاصة بك بعد أيام أو أسابيع أو أشهر، ستتمكن من تذكر سبب اتخاذك قرارًا معينًا أو "التراجع" عن تغيير – بالطبع عندما تكتب رسائل حفظ جيدة.
المهمة: إنشاء مستودع وحفظ الكود
🎯 هدف التعلم: بنهاية هذه المهمة، ستكون قد أنشأت أول مستودع GitHub خاص بك وقمت بأول عملية حفظ. هذه هي نقطة دخولك إلى عالم التحكم في الإصدارات!
شاهد الفيديو
خطوات العمل:
-
إنشاء مستودع على GitHub. على موقع GitHub.com، في علامة تبويب المستودعات، أو من شريط التنقل العلوي الأيمن، ابحث عن زر جديد (زر أخضر) أو القائمة المنسدلة + واختر مستودع جديد.
- قم بتسمية مستودعك (المجلد)
- أضف وصفًا (اختياري ولكنه موصى به)
- اختر جعله عامًا أو خاصًا
- فكر في إضافة ملف README، .gitignore، وترخيص
- اختر إنشاء مستودع.
-
انتقل إلى مجلد العمل الخاص بك. في نافذة الأوامر، انتقل إلى المجلد (المعروف أيضًا بالدليل) الذي تريد البدء في تتبعه. اكتب:
cd [name of your folder]ما الذي يفعله هذا الأمر:
- الانتقال إلى دليل المشروع حيث توجد ملفات الكود
- إعداد البيئة لبدء التتبع باستخدام Git
-
تهيئة مستودع Git. في مشروعك، اكتب:
git initخطوة بخطوة، ما الذي يحدث:
- إنشاء مجلد مخفي
.gitيحتوي على جميع معلومات التحكم في الإصدارات - تحويل المجلد العادي إلى مستودع Git يمكنه تتبع التغييرات
- إعداد الأساس للتحكم في الإصدارات في مشروعك
- إنشاء مجلد مخفي
-
التحقق من الحالة. للتحقق من حالة المستودع الخاص بك، اكتب:
git statusفهم المخرجات:
قد تبدو المخرجات كالتالي:
Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: file.txt modified: file2.txtما تحتاج إلى معرفته عن هذه المخرجات:
- النص الأحمر يشير عادةً إلى ملفات بها تغييرات ولكنها ليست جاهزة للحفظ
- النص الأخضر يظهر الملفات التي تم تجهيزها وجاهزة للحفظ
- تلميحات مفيدة تُقدم حول الأوامر التي يمكنك استخدامها بعد ذلك
💡 فهم حالة Git: هذا الأمر هو أفضل صديق لك! يخبرك بالضبط بما يراه Git في مشروعك وما هي الإجراءات التي يمكنك اتخاذها بعد ذلك.
أمر
git statusيخبرك بأشياء مثل الملفات الجاهزة للحفظ في المستودع أو التي تحتوي على تغييرات قد ترغب في الاحتفاظ بها. -
إضافة جميع الملفات للتتبع (تسمى أيضًا مرحلة الملفات):
git add .ما الذي يفعله هذا الأمر:
- تجهيز جميع الملفات المعدلة والجديدة في دليل المشروع
- إعداد هذه الملفات لتضمينها في الحفظ التالي
- وضع علامة على الملفات كجاهزة للالتقاط الدائم الذي سنقوم بإنشائه لاحقًا
أمر
git addمع الوسيطة.يشير إلى أن جميع ملفاتك وتغييراتك جاهزة للتتبع. -
إضافة ملفات محددة للتتبع (مرحلة انتقائية):
git add [file or folder name]متى تستخدم المرحلة الانتقائية:
- تنظيم التغييرات ذات الصلة في عمليات حفظ منفصلة لتاريخ أكثر وضوحًا
- تضمين فقط الملفات التي تنتمي معًا منطقيًا
- إنشاء رسائل حفظ أكثر معنى من خلال تجميع العمل ذي الصلة
💡 نصيحة احترافية: استخدم الإضافة الانتقائية عندما تريد حفظ تغييرات ذات صلة معًا. هذا يخلق تاريخ حفظ أكثر معنى.
-
إلغاء مرحلة الملفات (إذا غيرت رأيك):
# Unstage all files git reset # Unstage a particular file git reset [file or folder name]فهم إلغاء المرحلة:
- إزالة الملفات من منطقة المرحلة دون فقدان تغييراتك
- الاحتفاظ بتعديلاتك ولكن استبعادها من الحفظ التالي
- إعادة تنظيم ما تريد تضمينه في الحفظ
-
تثبيت عملك (إنشاء حفظ). في هذه المرحلة، قمت بإضافة الملفات إلى ما يسمى منطقة المرحلة. مكان حيث يقوم Git بتتبع ملفاتك. لجعل التغيير دائمًا، تحتاج إلى حفظ الملفات. للقيام بذلك، قم بإنشاء حفظ باستخدام أمر
git commit. يمثل الحفظ نقطة حفظ في تاريخ المستودع الخاص بك. اكتب ما يلي لإنشاء حفظ:git commit -m "first commit"ما الذي يحدث عند الحفظ:
- إنشاء لقطة دائمة لجميع الملفات المجهزة في هذه اللحظة
- تسجيل رسالة الحفظ لشرح التغييرات التي تم إجراؤها
- إنشاء معرف فريد (hash) لهذه المجموعة المحددة من التغييرات
- إضافة هذه اللقطة إلى تاريخ الإصدار الخاص بمشروعك
💡 نصائح لرسالة الحفظ: يمكن أن تكون رسالة الحفظ الأولى بسيطة، ولكن بالنسبة للحفظات المستقبلية، كن وصفيًا! أمثلة جيدة: "إضافة وظيفة تسجيل دخول المستخدم" أو "إصلاح خطأ في قائمة التنقل".
هذا يحفظ جميع ملفاتك، مع إضافة الرسالة "الحفظ الأول". بالنسبة لرسائل الحفظ المستقبلية، سترغب في أن تكون أكثر وصفًا لتوضيح نوع التغيير الذي قمت به.
-
ربط مستودع 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 الخاص بك
- ربط مستودع Git المحلي الخاص بك بالمستودع البعيد على GitHub
- تمكين القدرة على دفع الحفظات المحلية إلى GitHub وسحب التغييرات من GitHub
💡 بديل حديث: يمكنك أيضًا استخدام GitHub CLI لإنشاء وربط المستودع الخاص بك في خطوة واحدة:
gh repo create my-repo --public --push --source=.هذا ينشئ اتصالًا، أو رابطًا، يسمى "origin" يشير إلى مستودع GitHub الذي أنشأته سابقًا.
-
إرسال الملفات المحلية إلى GitHub. حتى الآن، قمت بإنشاء اتصال بين المستودع المحلي ومستودع GitHub. دعونا نرسل هذه الملفات إلى GitHub باستخدام الأمر التالي
git push، كما يلي:git push -u origin mainتفصيل هذا الأمر:
- تحميل الحفظات الخاصة بك من الفرع "main" إلى GitHub
- تعيين الفرع الرئيسي باستخدام
-uلإنشاء رابط دائم - تمكين عمليات الدفع المستقبلية المبسطة دون تحديد أسماء الفروع
هذا يرسل الحفظات الخاصة بك في الفرع "main" إلى GitHub. تعيين الفرع الرئيسي باستخدام
-uفي الأمر ينشئ رابطًا بين الفرع المحلي والفرع البعيد، بحيث يمكنك ببساطة استخدامgit pushأوgit pullدون الحاجة إلى تحديد اسم الفرع في المستقبل. 💡 ملاحظة: إذا كان اسم الفرع الافتراضي لديك مختلفًا (مثل "master")، استبدل "main" باسم الفرع الفعلي الخاص بك. يمكنك التحقق من الفرع الحالي باستخدامgit branch --show-current. -
لإضافة المزيد من التغييرات (العمل اليومي). إذا كنت ترغب في متابعة إجراء التغييرات ودفعها إلى GitHub، ستحتاج فقط إلى استخدام الأوامر الثلاثة التالية:
git add . git commit -m "type your commit message here" git pushخطوة بخطوة، إليك سير العمل اليومي الخاص بك:
- تجهيز الملفات المعدلة باستخدام
git add .(أو إضافة ملفات محددة) - التزام بالتغييرات مع رسالة وصفية حول ما أنجزته
- دفع التغييرات إلى GitHub لنسخ عملك احتياطيًا ومشاركته مع الآخرين
💡 نصيحة: قد ترغب أيضًا في اعتماد ملف
.gitignoreلمنع ظهور الملفات التي لا تريد تتبعها على GitHub - مثل ملف الملاحظات الذي تخزنه في نفس المجلد ولكنه ليس له مكان في مستودع عام. يمكنك العثور على قوالب لملفات.gitignoreفي .gitignore templates أو إنشاء واحد باستخدام gitignore.io. - تجهيز الملفات المعدلة باستخدام
سير العمل الحديث مع Git
فكر في تبني هذه الممارسات الحديثة:
- التزامات تقليدية: استخدم تنسيقًا موحدًا لرسائل الالتزام مثل
feat:،fix:،docs:، إلخ. تعرف على المزيد في conventionalcommits.org - التزامات ذرية: اجعل كل التزام يمثل تغييرًا منطقيًا واحدًا
- التزامات متكررة: قم بالتزام التغييرات بشكل متكرر مع رسائل وصفية بدلاً من الالتزامات الكبيرة وغير المتكررة
رسائل الالتزام
يجب أن تكمل سطر موضوع الالتزام الجيد في Git الجملة التالية: إذا تم تطبيقه، فإن هذا الالتزام سيقوم بـ <سطر الموضوع الخاص بك هنا>
استخدم صيغة الأمر، الزمن الحاضر في الموضوع: "تغيير" وليس "تم تغييره" أو "تغييرات". كما هو الحال في الموضوع، استخدم صيغة الأمر، الزمن الحاضر في النص (اختياري). يجب أن يتضمن النص الدافع للتغيير ويقارن ذلك بالسلوك السابق. أنت تشرح "لماذا"، وليس "كيف".
✅ خذ بضع دقائق لتصفح GitHub. هل يمكنك العثور على رسالة التزام رائعة حقًا؟ هل يمكنك العثور على رسالة بسيطة جدًا؟ ما هي المعلومات التي تعتقد أنها الأكثر أهمية وفائدة لتوصيلها في رسالة الالتزام؟
العمل على المشاريع مع الآخرين
التعاون هو المكان الذي يتألق فيه GitHub حقًا. بينما إدارة الكود الخاص بك قيمة، السحر الحقيقي يحدث عندما يعمل المطورون معًا لبناء شيء مذهل. يحول GitHub البرمجة الفردية إلى سيمفونية تعاونية حيث يمكن للعديد من المطورين المساهمة في نفس الوقت دون التداخل مع بعضهم البعض.
في هذا القسم، ستتعلم كيفية جعل مشاريعك مرحبة بالمطورين الآخرين وكيفية المساهمة بشكل هادف في المشاريع الحالية. هذه المهارات التعاونية هي ما يميز المبرمجين الهواة عن المطورين المحترفين.
شاهد الفيديو
السبب الرئيسي لوضع الأشياء على GitHub هو جعل التعاون مع المطورين الآخرين ممكنًا.
في مستودعك، انتقل إلى Insights > Community لترى كيف يقارن مشروعك بمعايير المجتمع الموصى بها.
🎯 جعل مستودعك احترافيًا: المستودع الموثق جيدًا يجذب المزيد من المساهمين ويظهر أنك تهتم بجودة الكود.
عناصر المستودع الأساسية:
| العنصر | الغرض | لماذا هو مهم |
|---|---|---|
| الوصف | ملخص موجز لمشروعك | يساعد الناس على فهم ما يفعله مشروعك بسرعة |
| README | توثيق مفصل للمشروع | أول شيء يقرأه الناس - اجعله مميزًا! |
| إرشادات المساهمة | تعليمات للمساهمين | يظهر أنك ترحب بالتعاون ويضع توقعات واضحة |
| مدونة السلوك | معايير سلوك المجتمع | يخلق بيئة مرحبة لجميع المساهمين |
| الرخصة | أذونات الاستخدام | يحدد كيفية استخدام الآخرين للكود الخاص بك قانونيًا |
| سياسة الأمان | عملية الإبلاغ عن الثغرات | يظهر أنك تأخذ الأمان بجدية |
💡 نصيحة احترافية: يوفر GitHub قوالب لجميع هذه الملفات. عند إنشاء مستودع جديد، تحقق من المربعات لإنشاء هذه الملفات تلقائيًا.
ميزات GitHub الحديثة لاستكشافها:
🤖 الأتمتة و CI/CD:
- GitHub Actions للاختبار والنشر التلقائي
- Dependabot لتحديث التبعيات تلقائيًا
💬 إدارة المجتمع والمشاريع:
- GitHub Discussions للمحادثات المجتمعية خارج نطاق القضايا
- GitHub Projects لإدارة المشاريع بأسلوب كانبان
- قواعد حماية الفروع لفرض معايير جودة الكود
كل هذه الموارد ستفيد في استيعاب أعضاء الفريق الجدد. وهذه هي عادةً الأشياء التي ينظر إليها المساهمون الجدد قبل حتى النظر إلى الكود الخاص بك، لمعرفة ما إذا كان مشروعك هو المكان المناسب لهم لقضاء وقتهم.
✅ ملفات README، على الرغم من أنها تستغرق وقتًا لإعدادها، غالبًا ما يتم تجاهلها من قبل المشرفين المشغولين. هل يمكنك العثور على مثال لملف README وصفي بشكل خاص؟ ملاحظة: هناك بعض الأدوات التي تساعد في إنشاء ملفات README جيدة قد ترغب في تجربتها.
المهمة: دمج بعض الكود
تساعد وثائق المساهمة الناس على المساهمة في المشروع. تشرح أنواع المساهمات التي تبحث عنها وكيفية عمل العملية. سيحتاج المساهمون إلى المرور بسلسلة من الخطوات ليتمكنوا من المساهمة في المستودع الخاص بك على GitHub:
- استنساخ المستودع الخاص بك ربما سترغب في أن يقوم الناس بـ استنساخ مشروعك. الاستنساخ يعني إنشاء نسخة من المستودع الخاص بك على ملف تعريف GitHub الخاص بهم.
- النسخ. من هناك سيقومون بنسخ المشروع إلى جهازهم المحلي.
- إنشاء فرع. سترغب في أن تطلب منهم إنشاء فرع لعملهم.
- تركيز التغيير على منطقة واحدة. اطلب من المساهمين التركيز على مساهماتهم في شيء واحد في كل مرة - بهذه الطريقة تكون فرص أن تتمكن من دمج عملهم أعلى. تخيل أنهم كتبوا إصلاحًا لخلل، أضافوا ميزة جديدة، وقاموا بتحديث عدة اختبارات - ماذا لو كنت تريد، أو يمكنك فقط تنفيذ 2 من 3، أو 1 من 3 تغييرات؟
✅ تخيل موقفًا تكون فيه الفروع ضرورية بشكل خاص لكتابة وشحن كود جيد. ما هي حالات الاستخدام التي يمكنك التفكير فيها؟
ملاحظة، كن التغيير الذي تريد رؤيته في العالم، وقم بإنشاء فروع لعملك الخاص أيضًا. أي التزامات تقوم بها سيتم تنفيذها على الفرع الذي "تم التحقق منه" حاليًا. استخدم
git statusلمعرفة أي فرع هو.
لنستعرض سير عمل المساهم. افترض أن المساهم قد قام بالفعل بـ استنساخ و نسخ المستودع بحيث يكون لديه مستودع Git جاهز للعمل عليه، على جهازه المحلي:
-
إنشاء فرع. استخدم الأمر
git branchلإنشاء فرع يحتوي على التغييرات التي يعتزم المساهمة بها:git branch [branch-name]💡 نهج حديث: يمكنك أيضًا إنشاء والتبديل إلى الفرع الجديد في أمر واحد:
git switch -c [branch-name] -
التبديل إلى الفرع العامل. قم بالتبديل إلى الفرع المحدد وقم بتحديث الدليل العامل باستخدام
git switch:git switch [branch-name]💡 ملاحظة حديثة:
git switchهو البديل الحديث لـgit checkoutعند تغيير الفروع. إنه أكثر وضوحًا وأمانًا للمبتدئين. -
العمل. في هذه المرحلة، تريد إضافة تغييراتك. لا تنسَ إخبار 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 rebaseللحصول على تاريخ أنظف:git rebase mainيعيد هذا تشغيل التزاماتك على أحدث فرع رئيسي، مما يخلق تاريخًا خطيًا.
-
إرسال عملك إلى GitHub. إرسال عملك إلى GitHub يعني شيئين. دفع فرعك إلى المستودع الخاص بك ثم فتح طلب سحب (Pull Request).
git push --set-upstream origin [branch-name]ينشئ الأمر أعلاه الفرع على المستودع المستنسخ الخاص بك.
-
فتح طلب سحب. بعد ذلك، تريد فتح طلب سحب. تقوم بذلك عن طريق الانتقال إلى المستودع المستنسخ على GitHub. سترى مؤشرًا على GitHub يسأل عما إذا كنت تريد إنشاء طلب سحب جديد، تضغط عليه وستنتقل إلى واجهة حيث يمكنك تغيير عنوان رسالة الالتزام، وإعطائها وصفًا أكثر ملاءمة. الآن سيرى المشرف على المستودع الذي استنسخته هذا الطلب و أصابعك متقاطعة سيقدر ويقوم بـ دمج طلب السحب الخاص بك. أنت الآن مساهم، رائع :)
💡 نصيحة حديثة: يمكنك أيضًا إنشاء طلبات السحب باستخدام GitHub CLI:
gh pr create --title "Your PR title" --body "Description of changes"🔧 أفضل الممارسات لطلبات السحب:
- ربط القضايا ذات الصلة باستخدام كلمات مثل "Fixes #123"
- إضافة لقطات شاشة للتغييرات في واجهة المستخدم
- طلب مراجعين محددين
- استخدام طلبات السحب المؤقتة للعمل الجاري
- التأكد من اجتياز جميع فحوصات CI قبل طلب المراجعة
-
تنظيف. يعتبر تنظيف الفروع بعد دمج طلب السحب بنجاح ممارسة جيدة. تريد تنظيف الفرع المحلي والفرع الذي دفعته إلى GitHub. أولاً، دعنا نحذفه محليًا باستخدام الأمر التالي:
git branch -d [branch-name]تأكد من الانتقال إلى صفحة GitHub للمستودع المستنسخ بعد ذلك وإزالة الفرع البعيد الذي دفعته إليه.
طلب السحب يبدو كأنه مصطلح غريب لأنك في الواقع تريد دفع تغييراتك إلى المشروع. لكن المشرف (مالك المشروع) أو الفريق الأساسي يحتاج إلى النظر في تغييراتك قبل دمجها مع فرع "main" الخاص بالمشروع، لذا فأنت في الواقع تطلب قرار تغيير من المشرف.
طلب السحب هو المكان الذي يتم فيه مقارنة ومناقشة الفروقات التي تم إدخالها على فرع مع المراجعات، التعليقات، الاختبارات المدمجة، والمزيد. يتبع طلب السحب الجيد تقريبًا نفس قواعد رسالة الالتزام. يمكنك إضافة مرجع إلى قضية في متتبع القضايا، عندما يكون عملك على سبيل المثال يحل قضية. يتم ذلك باستخدام # متبوعًا برقم القضية. على سبيل المثال #97.
🤞أصابعك متقاطعة أن جميع الفحوصات تمر ويتم دمج تغييراتك في المشروع من قبل مالك المشروع (المشاريع)🤞
قم بتحديث الفرع العامل المحلي الحالي الخاص بك بجميع الالتزامات الجديدة من الفرع البعيد المقابل على GitHub:
git pull
كيفية المساهمة في المصادر المفتوحة
المساهمة في مشاريع المصادر المفتوحة هي واحدة من أكثر التجارب مكافأة في تطوير الويب. إنها فرصتك لرد الجميل للمجتمع، التعلم من المطورين ذوي الخبرة، وإحداث تأثير حقيقي على البرمجيات التي يستخدمها الآلاف أو حتى الملايين من الناس.
جمال المساهمة في المصادر المفتوحة هو أن الجميع بدأوا كمبتدئين. المطورون الذين أنشأوا الأدوات التي تتعلم بها اليوم كانوا في يوم من الأيام في نفس المكان الذي أنت فيه الآن. من خلال المساهمة في المصادر المفتوحة، تصبح جزءًا من هذه الدورة المستمرة من التعلم والمشاركة التي تدفع الابتكار في تطوير الويب.
أولاً، دعنا نجد مستودعًا (أو repo) على GitHub يهمك وترغب في المساهمة بتغيير فيه. سترغب في نسخ محتوياته إلى جهازك.
✅ طريقة جيدة للعثور على مستودعات "مناسبة للمبتدئين" هي البحث باستخدام العلامة 'good-first-issue'.
هناك عدة طرق لنسخ الكود. إحدى الطرق هي "استنساخ" محتويات المستودع، باستخدام HTTPS، SSH، أو باستخدام GitHub CLI (واجهة سطر الأوامر).
افتح الطرفية الخاصة بك واستنسخ المستودع كالتالي:
# Using HTTPS
git clone https://github.com/ProjectURL
# Using SSH (requires SSH key setup)
git clone git@github.com:username/repository.git
# Using GitHub CLI
gh repo clone username/repository
للعمل على المشروع، انتقل إلى المجلد الصحيح:
cd ProjectURL
يمكنك أيضًا فتح المشروع بأكمله باستخدام:
- GitHub Codespaces - بيئة تطوير سحابية من GitHub مع VS Code في المتصفح
- GitHub Desktop - تطبيق واجهة مستخدم لعمليات Git
- GitHub.dev - اضغط على مفتاح
.على أي مستودع GitHub لفتح VS Code في المتصفح - VS Code مع إضافة GitHub Pull Requests
أخيرًا، يمكنك تنزيل الكود في مجلد مضغوط.
بعض الأمور المثيرة للاهتمام حول GitHub
يمكنك وضع نجمة، متابعة، و/أو "تشعب" أي مستودع عام على GitHub. يمكنك العثور على المستودعات التي وضعت لها نجمة في القائمة المنسدلة أعلى اليمين. إنها مثل الإشارات المرجعية، ولكن للرمز.
المشاريع تحتوي على متتبع للمشكلات، غالبًا على GitHub في علامة التبويب "Issues" ما لم يُذكر خلاف ذلك، حيث يناقش الأشخاص المشكلات المتعلقة بالمشروع. وعلامة التبويب Pull Requests هي المكان الذي يناقش فيه الأشخاص ويُراجعون التغييرات التي قيد التنفيذ.
قد تحتوي المشاريع أيضًا على مناقشات في المنتديات، قوائم البريد الإلكتروني، أو قنوات الدردشة مثل Slack، Discord أو IRC.
🔧 ميزات GitHub الحديثة:
- GitHub Discussions - منتدى مدمج للمحادثات المجتمعية
- GitHub Sponsors - دعم المساهمين ماليًا
- علامة التبويب Security - تقارير الثغرات ونصائح الأمان
- علامة التبويب Actions - عرض سير العمل الآلي وخطوط CI/CD
- علامة التبويب Insights - تحليلات حول المساهمين، الالتزامات، وصحة المشروع
- علامة التبويب Projects - أدوات إدارة المشاريع المدمجة في GitHub
✅ ألقِ نظرة حول مستودع GitHub الجديد الخاص بك وجرب بعض الأشياء، مثل تعديل الإعدادات، إضافة معلومات إلى المستودع، إنشاء مشروع (مثل لوحة Kanban)، وإعداد GitHub Actions للتشغيل الآلي. هناك الكثير مما يمكنك القيام به!
🚀 التحدي
تعاون مع صديق للعمل على أكواد بعضكما البعض. قم بإنشاء مشروع بشكل تعاوني، تشعب الأكواد، أنشئ فروعًا، وادمج التغييرات.
اختبار ما بعد المحاضرة
المراجعة والدراسة الذاتية
اقرأ المزيد عن المساهمة في البرمجيات مفتوحة المصدر.
مارس، مارس، مارس. GitHub يقدم مسارات تعليمية رائعة عبر GitHub Skills:
موارد حديثة إضافية:
تحدي GitHub Copilot Agent 🚀
استخدم وضع Agent لإكمال التحدي التالي:
الوصف: قم بإنشاء مشروع تطوير ويب تعاوني يوضح سير العمل الكامل لـ GitHub الذي تعلمته في هذا الدرس. سيساعدك هذا التحدي على ممارسة إنشاء المستودعات، ميزات التعاون، وسير العمل الحديث لـ Git في سيناريو واقعي.
المهمة: قم بإنشاء مستودع GitHub عام جديد لمشروع بسيط بعنوان "موارد تطوير الويب". يجب أن يتضمن المستودع ملف README.md منظمًا بشكل جيد يسرد أدوات وموارد تطوير الويب المفيدة، مصنفة حسب الفئات (HTML، CSS، JavaScript، إلخ). قم بإعداد المستودع بمعايير مجتمعية مناسبة بما في ذلك ترخيص، إرشادات المساهمة، ومدونة سلوك. أنشئ على الأقل فرعين للميزات: واحد لإضافة موارد CSS وآخر لموارد JavaScript. قم بعمل التزامات لكل فرع مع رسائل التزام وصفية، ثم أنشئ طلبات دمج لدمج التغييرات مرة أخرى إلى الفرع الرئيسي. قم بتمكين ميزات GitHub مثل Issues، Discussions، وقم بإعداد سير عمل GitHub Actions الأساسي لفحوصات آلية.
الواجب
أكمل دورة مقدمة إلى GitHub على GitHub Skills.
واجبات اختيارية متقدمة:
- إعداد مصادقة SSH لحساب GitHub الخاص بك
- جرب استخدام GitHub CLI للعمليات الشائعة
- قم بإنشاء مستودع مع سير عمل GitHub Actions
- استكشف GitHub Codespaces بفتح هذا المستودع في مساحة عمل Codespace
إخلاء المسؤولية:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالترجمة البشرية الاحترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.



