مقدمة للمطور عن GitHub

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

مقدمة إلى GitHub

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

باختصار ، إنها منصة لمطوري البرامج ، وهي مبنية حول Git.

تلميح: إذا كنت لا تعرف عن Git حتى الآن ، فراجع ملفدليل Git.

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

لماذا جيثب؟

الآن بعد أن عرفت ما هو GitHubيكون، ربما تساللماذا ايجب عليك استخدامه.

بعد كل شيء ، تدار GitHub من قبل شركة خاصة ، والتي تستفيد من استضافة كود الأشخاص. فلماذا يجب عليك استخدام ذلك بدلاً من الأنظمة الأساسية المماثلة مثل BitBucket أو GitLab ، المتشابهة جدًا؟

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

تم ترحيل قواعد الرموز الرئيسية بمرور الوقت إلى Git من أنظمة التحكم في الإصدارات الأخرى ، بسبب ملاءمتها ، وكان موقع GitHub تاريخياً في موقع جيد (وبذل الكثير من الجهد "للفوز") بمجتمع المصدر المفتوح.

لذلك في أي وقت تبحث فيه اليوم عن مكتبة ما ، ستجدها في 99٪ من المرات على GitHub.

بصرف النظر عن التعليمات البرمجية مفتوحة المصدر ، يستضيف العديد من المطورين أيضًا مستودعات خاصة على GitHub نظرًا لراحة النظام الأساسي الفريد.

قضايا جيثب

تعد مشكلات GitHub واحدة من أكثر برامج تعقب الأخطاء شيوعًا في العالم.

يوفر لمالكي المستودع القدرة على التنظيم ووضع العلامات والتعيين إلى قضايا الأحداث الرئيسية.

إذا فتحت مشكلة في مشروع يديره شخص آخر ، فستظل مفتوحة حتى تغلقها (على سبيل المثال إذا اكتشفت المشكلة التي تواجهها) أو إذا أغلقها مالك الريبو.

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

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

الترميز الاجتماعي

قبل بضع سنوات ، تضمن شعار GitHub شعار "الترميز الاجتماعي".

ماذا يعني هذا ، وهل هذا لا يزال ذا صلة؟ إنه كذلك بالتأكيد.

يتبع

مع جيثبيمكنك متابعة المطورين، من خلال الانتقال إلى ملفهم الشخصي والنقر على "متابعة".

يمكنك أيضًا متابعة المستودع، بالنقر فوق "راقب"على الريبو.

في كلتا الحالتين سيظهر النشاط في لوحة المعلومات الخاصة بك. أنت لا تتابع مثل Twitter ، حيث ترى ما يقوله الناس ، ولكنترى ما يفعله الناس.

النجوم

أحد الإنجازات الكبيرة لـ GitHub هو القدرة علىنجمة مستودع. سيشمله هذا الإجراء في قائمة "المستودعات المميزة بنجمة" ، مما يسمح لك بالعثور على الأشياء التي وجدتها مثيرة للاهتمام من قبل ، وهي أيضًا واحدة من أهم آليات التقييم ، فكلما زاد عدد النجوم في الريبو ، زادت أهميته ، و كلما زاد ظهوره في نتائج البحث.

يمكن أن تحتوي المشاريع الكبرى على 70.000 نجمة وأكثر.

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

يمكن أن يتسبب الدخول في قوائم المؤشرات في ظهور تأثيرات أخرى للشبكة مثل الظهور في مواقع أخرى ، فقط لأنك تتمتع بقدر أكبر من الرؤية.

شوكة

آخر مؤشر شبكة مهم للمشروع هو عدد التفرع.

هذا هو المفتاح لكيفية عمل GitHub ، حيث أن الشوكة هي أساس طلب السحب (PR) ، وهو اقتراح التغيير. بدءًا من المستودع الخاص بك ، يقوم الشخص بتشكيلها ، وإجراء بعض التغييرات ، ثم إنشاء PR ليطلب منك دمج هذه التغييرات.

في بعض الأحيان ، لا يطلب منك الشخص الذي يتفرع منه دمج أي شيء ، لمجرد أنه أحب الكود الخاص بك وقرر إضافة شيء ما فوقه ، أو أنه أصلح بعض الأخطاء التي كان يواجهها.

تقوم الشوكة باستنساخ ملفات مشروع GitHub ، ولكن ليس أيًا من النجوم أو الإصدارات الخاصة بالمشروع الأصلي.

بشكل عام ، هذه كلها مؤشرات رئيسية لشعبية المشروع ، وعمومًا جنبًا إلى جنب مع تاريخ آخر التزام ومشاركة المؤلف في تعقب المشكلات ، يعد مؤشرًا مفيدًا على ما إذا كان يجب عليك الاعتماد على مكتبة أو برنامج.

طلبات السحب

قبل أن أقدم ما هو طلب السحب (PR)

بدءًا من المستودع الخاص بك ، يقوم الشخص بتشكيلها ، وإجراء بعض التغييرات ، ثم إنشاء PR ليطلب منك دمج هذه التغييرات.

قد يحتوي المشروع على المئات من العلاقات العامة ، عمومًا كلما كان المشروع أكثر شعبية ، زاد عدد العلاقات العامة ، مثل مشروع React:

React Pull Requests

بمجرد أن يقدم الشخص بيانًا عامًا ، وهي عملية سهلة باستخدام واجهة GitHub ، يجب مراجعته من قبل المشرفين الأساسيين على المشروع.

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

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

هذا هو قول ذلكلا يتم دائمًا قبول العلاقات العامة بسرعة، و أيضاليس هناك ما يضمن قبول الإقامة الدائمة.

في المثال الذي نشرته أعلاه ، هناك علاقات عامة في الريبو يعود تاريخها إلى 1.5 سنة. وهذا يحدث فيالكلالمشاريع.

ادارة مشروع

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

واحد من هؤلاءالمشاريع. إنه جديد جدًا في النظام البيئي ونادرًا ما يستخدم ، ولكنهلوحة كانبانيساعد في تنظيم القضايا والعمل الذي يجب القيام به

الويكيالغرض منه استخدامه كتوثيق للمستخدمين. أحد أكثر استخدامات Wiki إثارة للإعجاب التي رأيتها حتى الآن هوGo Programming Language GitHub Wiki.

من المساعدات الشعبية الأخرى لإدارة المشاريعمعالم. كجزء من صفحة المشكلات ، يمكنك تعيين مشكلات لمراحل معينة ، والتي يمكن أن تكون أهدافًا للإصدار.

عند الحديث عن الإصدارات ، يعمل GitHub على تحسينعلامة Gitالوظيفة من خلال إدخالإطلاق.

تعد علامة Git مؤشرًا إلى التزام معين ، وإذا تم إجراؤها باستمرار ، فإنها تساعدك على الرجوع إلى الإصدار السابق من التعليمات البرمجية دون الرجوع إلى التزامات معينة.

يعتمد إصدار GitHub على علامات Git ويمثل إصدارًا كاملاً من التعليمات البرمجية الخاصة بك ، جنبًا إلى جنب مع الملفات المضغوطة وملاحظات الإصدار والأصول الثنائية التي قد تمثل إصدارًا كاملاً للعمل من المنتج النهائي للشفرة.

بينما يمكن إنشاء علامة Git برمجيًا (على سبيل المثال باستخدام سطر الأوامرgitالبرنامج) ، فإن إنشاء إصدار GitHub هو عملية يدوية تحدث من خلال واجهة مستخدم GitHub. أنت تخبر GitHub بشكل أساسي بإنشاء إصدار جديد وإخبارهم بالعلامة التي تريد تطبيق هذا الإصدار عليها.

مقارنة الالتزامات

يقدم GitHub العديد من الأدوات للعمل مع التعليمات البرمجية الخاصة بك.

من أهم الأشياء التي قد ترغب في القيام بها هي مقارنة فرع بفرع آخر. أو قارن آخر التزام بالإصدار الذي تستخدمه حاليًا لمعرفة التغييرات التي تم إجراؤها بمرور الوقت.

يتيح لك GitHub القيام بذلك باستخدام ملفقارن الرأي، فقط اضف/compareإلى اسم الريبو ، على سبيل المثال:https://github.com/facebook/react/compare

Compare View

على سبيل المثال ، اخترت المقارنة بين الأحدثرد فعل v15.xإلى الأحدثالإصدار 16.0.0-rcالإصدار المتاح وقت كتابة هذا التقرير ، للتحقق مما تغير:

Compare React Versions

المنظر يظهر لكالالتزامات التي ارتكبتبين إصدارين (أو علامات أو إشارات تلتزم) والفرق الفعليوإذا كان عدد التغييرات أقل من مبلغ معقول.

Webhooks والخدمات

يقدم GitHub العديد من الميزات التي تساعد في سير عمل المطور. واحد منهم هو webhooks ، والآخر هو الخدمات.

ويب هوك

تسمح Webhooks بتعرض الخدمات الخارجية لضغوط عند حدوث أحداث معينة في المستودع ، مثل عند دفع التعليمات البرمجية ، أو إنشاء مفترق ، أو إنشاء علامة أو حذفها.

عندما يقع حدث ما ، يرسل GitHub طلب POST إلى عنوان URL الذي أخبرناه باستخدامه.

الاستخدام الشائع لهذه الميزة هو اختبار اتصال خادم بعيد لجلب أحدث رمز من GitHub عندما نقوم بدفع تحديث من جهاز الكمبيوتر المحلي الخاص بنا.

ندفع إلى GitHub ، يخبر GitHub الخادم الذي دفعناه ، يسحب الخادم من GitHub.

خدمات

خدمات GitHub وتطبيقات GitHub الجديدة هي عمليات تكامل تابعة لجهات خارجية تعمل على تحسين تجربة المطور أو تقديم خدمة لك.

على سبيل المثال ، يمكنك إعداد عداء اختبار لتشغيل الاختبارات تلقائيًا في كل مرة تدفع فيها بعض الالتزامات الجديدة ، باستخدامترافيس.

يمكنك إعداد التكامل المستمر باستخدامالدائرة.

يمكنك إنشاء ملفالمناخالتكامل الذي يحلل الكود ويقدم تقريرًا بالديون الفنية وتغطية الاختبار.

الكلمات الأخيرة

GitHub هي أداة وخدمة رائعة للاستفادة منها ، جوهرة حقيقية في مجموعة أدوات المطور اليوم. سيساعدك هذا البرنامج التعليمي على البدء ، لكن التجربة الحقيقية للعمل على GitHub في مشاريع مفتوحة المصدر (أو مغلقة المصدر) أمر لا ينبغي تفويته.


المزيد من دروس git: