50 KiB
مقدمة إلى GitHub
مرحبًا أيها المطور المستقبلي! 👋 هل أنت مستعد للانضمام إلى ملايين المبرمجين حول العالم؟ أنا متحمس جدًا لتعريفك بـ GitHub – فكر فيه كمنصة التواصل الاجتماعي للمبرمجين، ولكن بدلاً من مشاركة صور الغداء، نحن نشارك الأكواد ونبني أشياء مذهلة معًا!
ما يذهلني حقًا هو أن كل تطبيق على هاتفك، وكل موقع تزوره، ومعظم الأدوات التي ستتعلم استخدامها تم بناؤها بواسطة فرق من المطورين الذين يتعاونون على منصات مثل GitHub. تطبيق الموسيقى الذي تحبه؟ شخص مثلك ساهم في بنائه. اللعبة التي لا تستطيع التوقف عن لعبها؟ نعم، ربما تم بناؤها بالتعاون عبر GitHub. والآن أنت ستتعلم كيف تكون جزءًا من هذه المجتمع الرائع!
أعلم أن هذا قد يبدو كثيرًا في البداية – أذكر تمامًا عندما نظرت لأول مرة إلى صفحة GitHub الخاصة بي وقلت "ما الذي يعنيه كل هذا؟" لكن إليك الأمر: كل مطور بدأ تمامًا من حيث أنت الآن. بنهاية هذا الدرس، سيكون لديك مستودع GitHub خاص بك (فكر فيه كعرض لمشاريعك الشخصية في السحابة)، وستعرف كيف تحفظ عملك، تشاركه مع الآخرين، وحتى تساهم في مشاريع يستخدمها الملايين من الناس.
سنخوض هذه الرحلة معًا، خطوة بخطوة. لا استعجال، لا ضغط – فقط أنت وأنا وبعض الأدوات الرائعة التي ستصبح أصدقائك الجدد!
رسم توضيحي بواسطة Tomomi Imura
اختبار ما قبل المحاضرة
المقدمة
قبل أن نغوص في الأمور المثيرة حقًا، دعنا نجهز جهاز الكمبيوتر الخاص بك لبعض السحر مع GitHub! فكر في هذا كتنظيم أدواتك الفنية قبل إنشاء تحفة فنية – وجود الأدوات المناسبة يجعل كل شيء أكثر سلاسة ومتعة.
سأرشدك خلال كل خطوة من خطوات الإعداد شخصيًا، وأعدك أنها ليست مخيفة كما قد تبدو في البداية. إذا لم تفهم شيئًا على الفور، فهذا طبيعي تمامًا! أذكر تمامًا عندما كنت أعد بيئة التطوير الأولى لي وشعرت وكأنني أحاول قراءة الهيروغليفية القديمة. كل مطور كان في نفس مكانك الآن، يتساءل إذا كان يفعل الأمور بشكل صحيح. مفاجأة: إذا كنت هنا تتعلم، فأنت بالفعل تفعل الأمور بشكل صحيح! 🌟
في هذا الدرس، سنتناول:
- تتبع العمل الذي تقوم به على جهازك
- العمل على المشاريع مع الآخرين
- كيفية المساهمة في البرمجيات مفتوحة المصدر
المتطلبات الأساسية
دعنا نجهز جهاز الكمبيوتر الخاص بك لبعض السحر مع GitHub! لا تقلق – هذا الإعداد شيء تحتاج إلى القيام به مرة واحدة فقط، وبعدها ستكون جاهزًا طوال رحلتك البرمجية.
حسنًا، لنبدأ بالأساسيات! أولاً، نحتاج إلى التحقق مما إذا كان Git موجودًا بالفعل على جهاز الكمبيوتر الخاص بك. Git يشبه وجود مساعد ذكي جدًا يتذكر كل تغيير تقوم به في الكود – أفضل بكثير من الضغط على Ctrl+S كل ثانيتين (كلنا مررنا بذلك!).
دعنا نرى إذا كان 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، من المهم اتباع أفضل الممارسات الأمنية:
| مجال الأمان | أفضل ممارسة | لماذا يهم |
|---|---|---|
| المصادقة | استخدم مفاتيح 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 تلغي الحاجة إلى إدخال كلمات المرور بشكل متكرر وهي أكثر أمانًا من طرق المصادقة التقليدية.
إدارة الكود الخاص بك مثل المحترفين
حسنًا، هنا تبدأ الأمور في أن تصبح مثيرة حقًا! 🎉 نحن على وشك تعلم كيفية تتبع وإدارة الكود الخاص بك مثل المحترفين، وبصراحة، هذا أحد الأشياء المفضلة لدي لتعليمها لأنه يغير اللعبة تمامًا.
تخيل هذا: أنت تكتب قصة مذهلة، وتريد تتبع كل مسودة، وكل تعديل رائع، وكل لحظة "انتظر، هذا عبقري!" على طول الطريق. هذا بالضبط ما يفعله Git لكودك! إنه مثل وجود دفتر ملاحظات مذهل يسافر عبر الزمن ويتذكر كل شيء – كل ضغطة مفتاح، كل تغيير، كل لحظة "أوه، هذا كسر كل شيء" التي يمكنك التراجع عنها فورًا.
سأكون صادقًا – قد يبدو هذا مربكًا في البداية. عندما بدأت، كنت أفكر "لماذا لا يمكنني فقط حفظ ملفاتي بشكل طبيعي؟" لكن ثق بي في هذا: بمجرد أن تفهم Git (وستفهمه!)، ستحصل على تلك اللحظة المضيئة حيث تفكر "كيف كنت أبرمج بدون هذا؟" إنه مثل اكتشاف أنك تستطيع الطيران عندما كنت تمشي في كل مكان طوال حياتك!
لنفترض أن لديك مجلدًا محليًا يحتوي على مشروع كود وتريد البدء في تتبع تقدمك باستخدام Git - نظام التحكم في الإصدارات. بعض الناس يقارنون استخدام Git بكتابة رسالة حب لنفسك المستقبلية. قراءة رسائل الحفظ الخاصة بك بعد أيام أو أسابيع أو أشهر ستتيح لك استرجاع سبب اتخاذك قرارًا معينًا، أو "التراجع" عن تغيير – هذا إذا كنت تكتب رسائل حفظ جيدة.
المهمة: إنشاء أول مستودع لك!
🎯 مهمتك (وأنا متحمس جدًا لك!): سنقوم بإنشاء أول مستودع GitHub لك معًا! بحلول الوقت الذي ننتهي فيه هنا، سيكون لديك ركن صغير خاص بك على الإنترنت حيث يعيش كودك، وستكون قد قمت بأول "حفظ" (هذا هو مصطلح المطورين لحفظ عملك بطريقة ذكية جدًا).
هذه لحظة خاصة جدًا – أنت على وشك الانضمام رسميًا إلى مجتمع المطورين العالمي! لا زلت أتذكر الإثارة عند إنشاء أول مستودع لي والتفكير "واو، أنا أفعل هذا حقًا!"
دعنا نمر بهذه المغامرة معًا، خطوة بخطوة. خذ وقتك مع كل جزء – لا يوجد جائزة للسرعة، وأعدك أن كل خطوة ستصبح منطقية. تذكر، كل نجم برمجي تعجب به كان يجلس تمامًا حيث أنت الآن، على وشك إنشاء أول مستودع له. كم هذا رائع؟
شاهد الفيديو
لنقم بذلك معًا:
-
إنشاء مستودعك على GitHub. توجه إلى GitHub.com وابحث عن الزر الأخضر اللامع جديد (أو علامة + في الزاوية اليمنى العليا). اضغط عليه واختر مستودع جديد.
إليك ما يجب فعله:
- امنح مستودعك اسمًا – اجعله شيئًا ذا معنى بالنسبة لك!
- أضف وصفًا إذا أردت (هذا يساعد الآخرين على فهم مشروعك)
- قرر إذا كنت تريد أن يكون عامًا (يمكن للجميع رؤيته) أو خاصًا (فقط لك)
- أوصي بتحديد المربع لإضافة ملف README – إنه مثل الصفحة الأولى لمشروعك
- اضغط على إنشاء مستودع واحتفل – لقد أنشأت أول مستودع لك! 🎉
-
انتقل إلى مجلد مشروعك. الآن دعنا نفتح الطرفية (لا تقلق، إنها ليست مخيفة كما تبدو!). نحتاج إلى إخبار جهاز الكمبيوتر الخاص بك بمكان ملفات مشروعك. اكتب هذا الأمر:
cd [name of your folder]ما الذي نفعله هنا:
- نحن نقول لجهاز الكمبيوتر "مرحبًا، خذني إلى مجلد مشروعي"
- هذا يشبه فتح مجلد معين على سطح المكتب، لكننا نفعل ذلك بأوامر نصية
- استبدل
[اسم مجلدك]باسم مجلد مشروعك الفعلي
-
حول مجلدك إلى مستودع Git. هنا يحدث السحر! اكتب:
git initما الذي حدث للتو (أشياء رائعة جدًا!):
- قام Git بإنشاء مجلد مخفي
.gitفي مشروعك – لن تراه، لكنه موجود! - أصبح مجلدك العادي الآن "مستودعًا" يمكنه تتبع كل تغيير تقوم به
- فكر فيه كإعطاء مجلدك قوى خارقة لتذكر كل شيء
- قام Git بإنشاء مجلد مخفي
-
تحقق مما يحدث. دعنا نرى ما الذي يعتقده Git عن مشروعك الآن:
git statusفهم ما يقوله Git لك:
قد ترى شيئًا يبدو مثل هذا:
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 statusهو أفضل صديق لك! استخدمه في أي وقت تشعر فيه بالارتباك بشأن ما يحدث. إنه مثل سؤال Git "مرحبًا، ما الوضع الآن؟" -
جهز ملفاتك للحفظ (هذا يسمى "التجهيز"):
git add .ما الذي فعلناه للتو:
- أخبرنا Git "مرحبًا، أريد تضمين جميع ملفاتي في الحفظ التالي"
- النقطة
.تشبه قول "كل شيء في هذا المجلد" - الآن ملفاتك "مجهزة" وجاهزة للخطوة التالية
هل تريد أن تكون أكثر انتقائية؟ يمكنك إضافة ملفات محددة فقط:
git add [file or folder name]لماذا قد ترغب في فعل ذلك؟
- أحيانًا تريد حفظ تغييرات ذات صلة معًا
- يساعدك على تنظيم عملك في أجزاء منطقية
- يجعل من السهل فهم ما تغير ومتى
غيرت رأيك؟ لا تقلق! يمكنك إزالة تجهيز الملفات مثل هذا:
# Unstage everything git reset # Unstage just one file git reset [file name]لا تقلق – هذا لا يحذف عملك، فقط يخرج الملفات من "جاهزة للحفظ".
-
احفظ عملك بشكل دائم (قم بأول عملية حفظ!):
git commit -m "first commit"🎉 تهانينا! لقد قمت بأول عملية حفظ!
ما الذي حدث للتو:
- قام Git بأخذ "لقطة" لجميع الملفات المجهزة في هذه اللحظة بالضبط
- رسالة الحفظ الخاصة بك "الحفظ الأول" تشرح ما يتعلق به نقطة الحفظ هذه
- أعطى Git هذه اللقطة معرفًا فريدًا حتى تتمكن دائمًا من العثور عليها لاحقًا
- لقد بدأت رسميًا في تتبع تاريخ مشروعك!
💡 رسائل الحفظ المستقبلية: بالنسبة لعمليات الحفظ القادمة، كن أكثر وصفًا! بدلًا من "تحديث الأشياء"، جرب "إضافة نموذج الاتصال إلى الصفحة الرئيسية" أو "إصلاح خطأ في قائمة التنقل". نفسك المستقبلية ستشكرك!
-
ربط مشروعك المحلي بـ GitHub. الآن، مشروعك موجود فقط على جهاز الكمبيوتر الخاص بك. دعنا نربطه بمستودع GitHub الخاص بك حتى تتمكن من مشاركته مع العالم!
أولاً، توجه إلى صفحة مستودع GitHub الخاص بك ونسخ الرابط. ثم عد إلى هنا واكتب:
git remote add origin https://github.com/username/repository_name.git(استبدل هذا الرابط برابط مستودعك الفعلي!)
ما الذي فعلناه للتو:
- قمنا بإنشاء اتصال بين مشروعك المحلي ومستودع GitHub الخاص بك
- "Origin" هو مجرد اسم مستعار لمستودع GitHub الخاص بك – يشبه إضافة جهة اتصال إلى هاتفك
- الآن يعرف Git المحلي الخاص بك أين يرسل الكود الخاص بك عندما تكون جاهزًا لمشاركته
💡 طريقة أسهل: إذا كان لديك GitHub CLI مثبتًا، يمكنك القيام بذلك بأمر واحد:
gh repo create my-repo --public --push --source=.
-
أرسل الكود الخاص بك إلى GitHub (اللحظة الكبيرة!):
git push -u origin main
🚀 هذه هي اللحظة! أنت تقوم برفع الكود الخاص بك إلى GitHub!
ما الذي يحدث:
- التغييرات التي قمت بها تنتقل من جهاز الكمبيوتر الخاص بك إلى GitHub
- العلم
-uيقوم بإعداد اتصال دائم لتسهيل عمليات الدفع المستقبلية - "main" هو اسم الفرع الأساسي الخاص بك (مثل المجلد الرئيسي)
- بعد ذلك، يمكنك فقط كتابة
git pushللرفع في المستقبل!
💡 ملاحظة سريعة: إذا كان اسم الفرع الخاص بك مختلفًا (مثل "master")، استخدم هذا الاسم بدلاً من ذلك. يمكنك التحقق باستخدام git branch --show-current.
- إيقاع البرمجة اليومي الجديد الخاص بك (هنا يصبح الأمر ممتعًا!):
من الآن فصاعدًا، كلما أجريت تغييرات على مشروعك، لديك هذه الخطوات الثلاث البسيطة:
git add .
git commit -m "describe what you changed"
git push
هذا يصبح نبض البرمجة الخاص بك:
- قم بإجراء تغييرات رائعة على الكود الخاص بك ✨
- قم بتجهيزها باستخدام
git add("مرحبًا Git، انتبه لهذه التغييرات!") - احفظها باستخدام
git commitورسالة وصفية (ستشكر نفسك في المستقبل!) - شاركها مع العالم باستخدام
git push🚀 - كرر العملية – بجدية، هذا يصبح طبيعيًا مثل التنفس!
أحب هذا التدفق لأنه يشبه وجود نقاط حفظ متعددة في لعبة فيديو. أجريت تغييرًا تحبه؟ قم بحفظه! تريد تجربة شيء محفوف بالمخاطر؟ لا مشكلة – يمكنك دائمًا العودة إلى آخر حفظ إذا ساءت الأمور!
💡 نصيحة: قد ترغب أيضًا في اعتماد ملف
.gitignoreلمنع ظهور الملفات التي لا تريد تتبعها على GitHub - مثل ملف الملاحظات الذي تخزنه في نفس المجلد ولكنه ليس له مكان في مستودع عام. يمكنك العثور على قوالب لملفات.gitignoreفي .gitignore templates أو إنشاء واحد باستخدام gitignore.io.
تدفقات Git الحديثة
فكر في اعتماد هذه الممارسات الحديثة:
- التزامات تقليدية: استخدم تنسيقًا موحدًا لرسائل الالتزام مثل
feat:،fix:،docs:، إلخ. تعرف على المزيد في conventionalcommits.org - التزامات ذرية: اجعل كل التزام يمثل تغييرًا منطقيًا واحدًا
- التزامات متكررة: قم بالالتزام بشكل متكرر مع رسائل وصفية بدلاً من الالتزامات الكبيرة وغير المتكررة
رسائل الالتزام
سطر موضوع الالتزام الجيد يكمل الجملة التالية:
إذا تم تطبيقه، فإن هذا الالتزام سيقوم بـ <سطر الموضوع الخاص بك هنا>
استخدم صيغة الأمر، الزمن الحاضر: "تغيير" وليس "تم تغييره" ولا "يغير".
كما هو الحال في الموضوع، في النص (اختياري) أيضًا استخدم صيغة الأمر، الزمن الحاضر. يجب أن يتضمن النص الدافع للتغيير ويقارن ذلك بالسلوك السابق. أنت تشرح لماذا، وليس كيف.
✅ خذ بضع دقائق لتصفح GitHub. هل يمكنك العثور على رسالة التزام رائعة حقًا؟ هل يمكنك العثور على واحدة بسيطة جدًا؟ ما المعلومات التي تعتقد أنها الأكثر أهمية وفائدة لتوصيلها في رسالة الالتزام؟
العمل مع الآخرين (الجزء الممتع!)
تمسك بقبعتك لأن هذا هو المكان الذي يصبح فيه GitHub سحريًا تمامًا! 🪄 لقد أتقنت إدارة الكود الخاص بك، ولكن الآن نحن نغوص في الجزء المفضل لدي – التعاون مع أشخاص رائعين من جميع أنحاء العالم.
تخيل هذا: تستيقظ غدًا وترى أن شخصًا في طوكيو قد حسّن الكود الخاص بك أثناء نومك. ثم يقوم شخص في برلين بإصلاح خطأ كنت عالقًا فيه. وبحلول فترة الظهيرة، يضيف مطور في ساو باولو ميزة لم تفكر فيها أبدًا. هذا ليس خيالًا علميًا – هذا مجرد يوم عادي في عالم GitHub!
ما يثيرني حقًا هو أن مهارات التعاون التي ستتعلمها؟ هذه هي نفس التدفقات التي تستخدمها الفرق في Google وMicrosoft وأفضل الشركات الناشئة كل يوم. أنت لا تتعلم مجرد أداة رائعة – أنت تتعلم اللغة السرية التي تجعل عالم البرمجيات بأكمله يعمل معًا.
بجدية، بمجرد أن تختبر شعور شخص ما بدمج أول طلب سحب لك، ستفهم لماذا يصبح المطورون متحمسين جدًا للمصادر المفتوحة. إنه مثل أن تكون جزءًا من أكبر مشروع فريق إبداعي في العالم!
شاهد الفيديو
السبب الرئيسي لوضع الأشياء على GitHub هو جعل التعاون مع المطورين الآخرين ممكنًا.
في مستودعك، انتقل إلى Insights > Community لترى كيف يقارن مشروعك بمعايير المجتمع الموصى بها.
هل تريد أن يبدو مستودعك احترافيًا ومرحبًا؟ توجه إلى مستودعك وانقر على Insights > Community. هذه الميزة الرائعة تظهر لك كيف يقارن مشروعك بما يعتبره مجتمع GitHub "ممارسات مستودع جيدة".
🎯 جعل مشروعك يلمع: مستودع منظم جيدًا مع وثائق جيدة يشبه وجود واجهة متجر نظيفة ومرحبة. إنه يخبر الناس أنك تهتم بعملك ويجعل الآخرين يرغبون في المساهمة!
إليك ما يجعل المستودع رائعًا:
| ما يجب إضافته | لماذا هو مهم | ماذا يفعل لك |
|---|---|---|
| الوصف | الانطباع الأول مهم! | يعرف الناس فورًا ما يفعله مشروعك |
| README | الصفحة الرئيسية لمشروعك | مثل دليل سياحي ودود للزوار الجدد |
| إرشادات المساهمة | يظهر أنك ترحب بالمساعدة | يعرف الناس بالضبط كيف يمكنهم مساعدتك |
| مدونة السلوك | يخلق مساحة ودية | يشعر الجميع بالترحيب للمشاركة |
| الرخصة | وضوح قانوني | يعرف الآخرون كيف يمكنهم استخدام الكود الخاص بك |
| سياسة الأمان | يظهر أنك مسؤول | يوضح ممارسات احترافية |
💡 نصيحة احترافية: يوفر GitHub قوالب لجميع هذه الملفات. عند إنشاء مستودع جديد، تحقق من المربعات لإنشاء هذه الملفات تلقائيًا.
ميزات GitHub الحديثة لاستكشافها:
🤖 الأتمتة وCI/CD:
- GitHub Actions للاختبار والنشر التلقائي
- Dependabot لتحديث التبعيات تلقائيًا
💬 المجتمع وإدارة المشاريع:
- GitHub Discussions للمحادثات المجتمعية خارج نطاق القضايا
- GitHub Projects لإدارة المشاريع بأسلوب كانبان
- قواعد حماية الفروع لفرض معايير جودة الكود
كل هذه الموارد ستفيد في استيعاب أعضاء الفريق الجدد. وهذه هي عادةً الأشياء التي ينظر إليها المساهمون الجدد قبل حتى النظر إلى الكود الخاص بك، لمعرفة ما إذا كان مشروعك هو المكان المناسب لقضاء وقتهم.
✅ ملفات 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 يعني شيئين. دفع فرعك إلى مستودعك ثم فتح طلب سحب.
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
المساهمة في المصادر المفتوحة (فرصتك لإحداث تأثير!)
هل أنت مستعد لشيء سيذهلك تمامًا؟ 🤯 دعنا نتحدث عن المساهمة في مشاريع المصادر المفتوحة – وأنا أشعر بالقشعريرة فقط من التفكير في مشاركة هذا معك!
هذه فرصتك لتكون جزءًا من شيء استثنائي حقًا. تخيل تحسين الأدوات التي يستخدمها ملايين المطورين يوميًا، أو إصلاح خطأ في تطبيق يحبه أصدقاؤك. هذا ليس مجرد حلم – هذا هو جوهر المساهمة في المصادر المفتوحة!
ما يجعلني أشعر بالإثارة كل مرة أفكر في الأمر: كل أداة كنت تتعلم بها – محرر الكود الخاص بك، الأطر التي سنستكشفها، وحتى المتصفح الذي تقرأ فيه هذا – بدأت بشخص مثلك تمامًا يقوم بأول مساهمة له. ذلك المطور الرائع الذي أنشأ امتداد VS Code المفضل لديك؟ كان يومًا ما مبتدئًا ينقر على "إنشاء طلب سحب" بأيدٍ مرتجفة، تمامًا كما أنت على وشك القيام به.
وهنا الجزء الأكثر جمالًا: مجتمع المصادر المفتوحة يشبه أكبر عناق جماعي على الإنترنت. معظم المشاريع تبحث بنشاط عن القادمين الجدد وتضع قضايا موسومة بـ "good first issue" خصيصًا لأشخاص مثلك! المشرفون يشعرون بالحماس عندما يرون مساهمين جدد لأنهم يتذكرون خطواتهم الأولى.
أنت لا تتعلم البرمجة فقط هنا – أنت تستعد للانضمام إلى عائلة عالمية من البنائين الذين يستيقظون كل يوم وهم يفكرون "كيف يمكننا جعل العالم الرقمي أفضل قليلاً؟" مرحبًا بك في النادي! 🌟
أولاً، دعنا نجد مستودعًا (أو 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
أخيرًا، يمكنك تنزيل الكود في مجلد مضغوط.
بعض الأشياء المثيرة للاهتمام حول 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 مليء بأشخاص مرحبين للغاية يتذكرون كيف كان الأمر عندما كانوا جددًا. ابحث عن مستودعات تحمل وسوم "good first issue" – إنها تقول أساسًا "مرحبًا بالمبتدئين، تعالوا تعلموا معنا!" كم هذا رائع؟
اختبار ما بعد المحاضرة
المراجعة ومواصلة التعلم
واو! 🎉 انظر إليك – لقد تغلبت للتو على أساسيات GitHub مثل بطل حقيقي! إذا شعرت أن عقلك ممتلئ قليلاً الآن، فهذا طبيعي تمامًا وبصراحة علامة جيدة. لقد تعلمت للتو أدوات استغرقني أسابيع لأشعر بالراحة معها عندما بدأت.
Git وGitHub قويان للغاية (بجدية، قويان جدًا)، وكل مطور أعرفه – بما في ذلك أولئك الذين يبدو أنهم سحرة الآن – كان عليهم أن يمارسوا ويتعثروا قليلاً قبل أن يتضح كل شيء. حقيقة أنك اجتزت هذا الدرس تعني أنك بالفعل في طريقك لإتقان بعض من أهم الأدوات في مجموعة أدوات المطور.
إليك بعض الموارد الرائعة لمساعدتك على الممارسة وتصبح أكثر روعة:
- دليل المساهمة في برامج المصادر المفتوحة – خارطة طريقك لإحداث فرق
- ورقة غش Git – احتفظ بها في متناول يدك للرجوع السريع!
وتذكر: الممارسة تصنع التقدم، وليس الكمال! كلما استخدمت Git وGitHub، أصبح الأمر طبيعيًا أكثر. لقد أنشأت GitHub بعض الدورات التفاعلية المذهلة التي تتيح لك الممارسة في بيئة آمنة:
تشعر بالمغامرة؟ تحقق من هذه الأدوات الحديثة:
- وثائق GitHub CLI – عندما تريد أن تشعر وكأنك ساحر سطر الأوامر
- وثائق GitHub Codespaces – البرمجة في السحابة!
- وثائق GitHub Actions – أتمتة كل شيء
- أفضل ممارسات Git – ارتقِ بمستوى سير العمل الخاص بك
تحدي GitHub Copilot Agent 🚀
استخدم وضع Agent لإكمال التحدي التالي:
الوصف: أنشئ مشروع تطوير ويب تعاوني يوضح سير العمل الكامل لـ GitHub الذي تعلمته في هذا الدرس. سيساعدك هذا التحدي على ممارسة إنشاء المستودعات، ميزات التعاون، وسير العمل الحديث لـ Git في سيناريو واقعي.
المهمة: أنشئ مستودع GitHub عام جديد لمشروع بسيط بعنوان "موارد تطوير الويب". يجب أن يتضمن المستودع ملف README.md منظمًا جيدًا يسرد أدوات وموارد تطوير الويب المفيدة، مصنفة حسب الفئات (HTML، CSS، JavaScript، إلخ). قم بإعداد المستودع بمعايير المجتمع المناسبة بما في ذلك ترخيص، إرشادات المساهمة، ومدونة سلوك. أنشئ على الأقل فرعين للميزات: واحد لإضافة موارد CSS وآخر لموارد JavaScript. قم بعمل التزامات لكل فرع مع رسائل التزام وصفية، ثم أنشئ طلبات سحب لدمج التغييرات مرة أخرى إلى الفرع الرئيسي. قم بتمكين ميزات GitHub مثل القضايا، المناقشات، وإعداد سير عمل GitHub Actions الأساسي لفحوصات آلية.
المهمة
مهمتك، إذا اخترت قبولها: أكمل دورة مقدمة إلى GitHub على مهارات GitHub. ستتيح لك هذه الدورة التفاعلية ممارسة كل ما تعلمته في بيئة آمنة وموجهة. بالإضافة إلى ذلك، ستحصل على شارة رائعة عند الانتهاء! 🏅
تشعر بالاستعداد لمزيد من التحديات؟
- قم بإعداد مصادقة SSH لحساب GitHub الخاص بك (لا مزيد من كلمات المرور!)
- جرب استخدام GitHub CLI لعمليات Git اليومية الخاصة بك
- أنشئ مستودعًا مع سير عمل GitHub Actions
- استكشف GitHub Codespaces بفتح هذا المستودع نفسه في محرر قائم على السحابة
تذكر: كل خبير كان يومًا ما مبتدئًا. أنت قادر على ذلك! 💪
إخلاء المسؤولية:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالترجمة البشرية الاحترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسير خاطئ ينشأ عن استخدام هذه الترجمة.



