Git و Github: دليل المبتدئين للمبتدئين الجدد
نشرت: 2017-08-15على الرغم مما يخبرنا به التلفزيون والأفلام ، فإن الحياة كمطور برمجيات لا تشمل الجلوس في غرفة مظلمة ، لوحة المفاتيح الخاصة بنا مضاءة فقط من خلال وهج الشاشة ، وفكرة التفاعل مع إنسان آخر مثيرة للاشمئزاز. لا ، الحياة كمطور برمجيات اجتماعية وتعاونية - أحيانًا إلى درجة الإحباط. لهذا السبب لدينا git و Github.
Git هو برنامج للتحكم في الإصدارات يجعل التعاون مع زملائك في الفريق أمرًا بسيطًا للغاية ... بمجرد أن تتجاوز منحنى التعلم الأولي. يمكن أن يكون الأمر مخيفًا ، لكن هذا هو سبب وجودي هنا!
ما هو جيت؟
حسنًا ، هذه ليست الطريقة التي نرشف بها نحن الجنوبيين العطور من شرفاتنا ، سأخبرك بذلك.
كما قلت أعلاه ، Git هو برنامج للتحكم في الإصدار. تم إنشاؤه بواسطة Linus Torvalds ، الرجل الذي اخترع Linux. لا يتعين عليك تشغيل Linux لاستخدام git - يمكنك استخدامه على نظامي التشغيل Windows و Mac أيضًا.
يتيح لك Git تتبع كل مراجعة تجريها أنت وفريقك بسهولة أثناء تطوير برنامجك. تشترك جميعًا في مستودع واحد من التعليمات البرمجية يتم العمل عليه بشكل مستقل ثم يتم دمجه معًا مرة أخرى. لا تحتاج أيضًا إلى أن تكون متصلاً طوال الوقت لأن المشروع يتم حفظه محليًا على كل جهاز وعن بُعد (ربما في Github).
يعد Git خاصًا (وإلزاميًا إلى حد كبير) لأنه يمكنك الرجوع إلى أي إصدار سابق من التعليمات البرمجية الخاصة بك ، وتفريع ميزة معينة وتطويرها دون التأثير على أي شيء أو أي شخص آخر ، والحفاظ على الأمان من تلف البيانات بسبب طبيعتها الموزعة.
كما يوفر أيضًا تشفيرًا مطبقًا بسهولة وتوافقًا عبر أنظمة التشغيل ، بالإضافة إلى تدفقات عمل غير متزامنة وغير خطية بحيث يمكنك العمل في بعض جوانب مشروعك بغض النظر عن مكانك.
في الأساس ، إذا كنت لا تستخدم git ، فأنت تقوم بالتشفير بيد واحدة مقيدة خلف ظهرك.
المفردات المطلوبة
عندما تبدأ في استخدام git لأول مرة ، قد يكون ذلك مخيفًا. قد تبدو الأوامر والمفاهيم غريبة تمامًا إذا لم تستخدم أي شكل من أشكال التحكم في الإصدار في الماضي. سوف تلتقطها بسرعة فائقة ، على الرغم من ذلك.
مخزن:
غالبًا ما يشار إليه باسم الريبو . المستودع هو مجموعة الملفات والمجلدات التي تستخدم git للتتبع. يتكون المستودع من السجل الكامل لتغييرات فريقك على المشروع. إنه صندوق أولي الكبير الذي تقوم أنت وفريقك بإلقاء الكود فيه.
جيثب:
حل التخزين عن بعد الأكثر شيوعًا لـ git repos. كما يسمح لك بتعيين أذونات الوصول للمشاريع ، وتتبع الأخطاء وإرسالها ، وقبول طلبات الميزات ، والاشتراك في إشعارات المستودع ، واستخدام واجهة رسومية ، بدلاً من استخدام سطر الأوامر. عمليات إعادة الشراء الافتراضية إلى العامة ، ولكن يمكن أن يكون للحسابات المدفوعة حسابات خاصة.
ارتكب:
فكر في هذا على أنه توفير لعملك. عندما تلتزم بمستودع ما ، يبدو الأمر كما لو كنت تجمع الملفات كما هي موجودة في تلك اللحظة وتضعها في كبسولة زمنية. لن يكون الالتزام موجودًا إلا على جهازك المحلي حتى يتم دفعه إلى مستودع بعيد.
يدفع:
الدفع هو الخبز لارتكاب الزبدة. يؤدي الالتزام بإلقاء ملفاتك في الكبسولة الزمنية ، والدفع هو ما يطلق الكبسولة في الفضاء. الدفع هو في الأساس مزامنة التزاماتك مع السحابة (مرة أخرى ، على الأرجح جيثب). يمكنك دفع التزامات متعددة في وقت واحد أيضًا. يمكنك العمل دون اتصال بالإنترنت ، والالتزام بالكثير من العمل ، ثم دفع كل شيء إلى Github عندما تعود إلى الحضارة باستخدام شبكة wifi الرائعة.
فرع:
يمكنك التفكير في git repo على أنه شجرة. يُطلق على جذع الشجرة ، البرنامج الذي يتم تشغيله ، اسم الفرع الرئيسي. هذا هو الذي يتم بثه مباشرة. تسمى فروع تلك الشجرة بالفروع. هذه أمثلة منفصلة عن الكود الذي ينبثق من قاعدة الكود الرئيسية. قد تتفرع لميزة واحدة أو تصحيح تجريبي. من خلال التفرع ، يمكنك الحفاظ على تكامل البرنامج ولديك طريقة للعودة إذا فعلت شيئًا مجنونًا تمامًا. كما يسمح لك بالعمل على مهمتك دون التعثر في طريق فريقك (أو طريقك).
دمج:
عندما يتم صقل الفرع ، وخالٍ من الأخطاء (بقدر ما تستطيع أن تقول ، على الأقل) ، ويكون جاهزًا ليصبح جزءًا من قاعدة الكود الأساسية ، فسيتم دمجه في الفرع الرئيسي. الدمج هو ما يبدو عليه الأمر تمامًا: دمج فرعين معًا. سيصبح أي رمز جديد أو محدث جزءًا رسميًا من قاعدة التعليمات البرمجية. أي شخص يتفرع من نقطة الدمج سيكون لديه هذا الرمز في فرعه أيضًا.
استنساخ:
استنساخ الريبو هو بالضبط ما يبدو عليه. يأخذ المستودع عبر الإنترنت بالكامل ويقوم بعمل نسخة طبق الأصل منه على جهازك المحلي. ستحتاج إلى القيام بذلك لأي عدد من الأسباب ، ليس أقلها البدء في منتصف المشروع مع فريق جديد ، أو تبديل محطات العمل ، أو البدء من جديد من ريبو تالف.
شوكة:
يشبه Forking إلى حد كبير الاستنساخ ، فقط بدلاً من عمل نسخة مكررة من الريبو الموجود على جهازك المحلي ، ستحصل على إعادة شراء جديدة تمامًا لهذا الرمز تحت اسمك. تُستخدم هذه الميزة بشكل أساسي لأخذ قاعدة بيانات موجودة بالفعل والانتقال إلى اتجاه جديد تمامًا معها ، وهو ما يحدث كثيرًا في البرامج مفتوحة المصدر ؛ يرى المطورون فكرة أساسية تعمل ، لكنهم يريدون اتباع طريقة مختلفة معها. التشعب يسمح بحدوث ذلك. يمكنك أيضًا اللعب في مستودع مطور آخر مثل صندوق الحماية الخاص بك. وإذا فعلت شيئًا تعتقد أنه قد يحبه ، فيمكنك تقديم طلب سحب ليتم دمجه فيه.
طلب سحب:
طلب السحب هو عندما ترسل طلبًا بالتغييرات التي أجريتها (إما على فرع أو مفترق) ليتم سحبها (أو دمجها) في الفرع الرئيسي للمستودع. هذا هو الوقت المهم. هذا هو المكان الذي يحدث السحر. إذا تمت الموافقة على طلب السحب ، فستكون قد ساهمت رسميًا في البرنامج ، وسيُظهر Github إلى الأبد ما فعلته بالضبط. ومع ذلك ، إذا تم رفض طلب السحب لأي سبب من الأسباب ، فسيكون المنكر قادرًا على تقديم ملاحظات حول سبب رفض الطلب وما يمكنك القيام به لقبول الطلب.
البدء والأوامر المطلوبة
لم يكن ذلك سيئًا للغاية ، أليس كذلك؟
حق. الآن بعد أن أصبحت لديك فكرة واضحة عن ماهية git ، فقد حان الوقت للتنقيب وتسخير يديك.
يجب أن أغتنم هذه الفرصة لألاحظ ، مع ذلك ، أنني سأفترض أنك تستخدم سطر الأوامر للتفاعل مع git. متأكد من أن هناك عملاء بوابة الرسومية (وجيثب حتى يسمح لك أن تفعل كل شيء تقريبا من خلال ذلك في واجهة الويب)، ولكن لأغراض هذا المنصب ونحن لسنا بصدد عناء معهم. ستفعل عددًا قليلاً من الأشياء خارج الجهاز ، لكن سطر الأوامر سيكون BFF الجديد الخاص بك. هذا ما نذهب إليه أيضًا.
كيفية تثبيت Git
Git (على الأرجح) لم يتم تثبيته على جهاز الكمبيوتر الخاص بك ، لذلك يتعين علينا الحصول عليه هناك. لحسن الحظ ، فإن تثبيت git سهل للغاية ، سواء كنت تستخدم Linux أو Mac أو Windows.
بالنسبة إلى Linux ، افتح Terminal واكتب sudo apt-get install git-all (إذا كنت تستخدم Ubuntu. إذا لم تكن كذلك ، فهناك قائمة بجميع أوامر تثبيت حزمة Linux لأي توزيعة أخرى تعمل عليها.)
على Windows ، الأمر بهذه البساطة. يمكنك تنزيل برنامج التثبيت وتشغيله.
في نظام Mac ، ما عليك سوى فتح الجهاز واكتب git . إذا لم يتم تثبيت git ، فسترى هذا:

بمجرد النقر فوق تثبيت ، فأنت على ما يرام.
ارى؟ سهل للغاية!
باستخدام Git
هنا حيث تبدأ المتعة. الآن بعد أن قمت بتثبيت git ، حان وقت ... git-r-done! ههه! ولكن حان الوقت حقًا للتعمق في الأمر وتعلم البدء في استخدام هذا الجزء الصغير المذهل من سحر سطر الأوامر. وما هو أفضل مكان للبدء من جيثب؟
لذا ، انطلق وقم بالتسجيل للحصول على حساب Github الجديد الخاص بك (أو قم بتسجيل الدخول إذا كان لديك حساب بالفعل ، وسأكون معك في غضون ثانية).
Github مجاني للمستودعات العامة ، ويمكنك الحصول على مستودعات خاصة مقابل سعر. (لمعلوماتك: يمكنك الحصول على عمليات إعادة شراء خاصة مجانية في Bitbucket ، وهو مكان أقل شهرة ولكنه رائع). بالنسبة للجزء الأكبر ، يعد الخيار المجاني على Github مناسبًا لمعظم الأشخاص (وهو يعمل مثل السيرة الذاتية الحية أيضًا!) ، لكن بعض العملاء وأصحاب العمل سيطلبون الخصوصية والأمان ، لذلك من الجيد أن يكون لديك خيارات.

بعد ذلك ، تكون جاهزًا لإعداد مستودعك الأول! بعد التحقق من بريدك الإلكتروني وكل هذه الأشياء الممتعة.


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

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

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

نظرًا لأننا نستنسخ ، يمكننا تجاهل كل شيء باستثناء الجزء المتعلق بالاستنساخ باستخدام HTTPS. لن تضطر إلى تكوين أي شيء. ستحتاج فقط إلى إدخال اسم المستخدم وكلمة المرور عند الدفع.
أولاً ، على الرغم من ذلك ، تحتاج إلى إعداد المكان الذي تريد أن يعيش فيه الريبو الخاص بك على جهازك المحلي. افتح جهازك. (بالنسبة لمستخدمي Windows ، ابحث عن برنامج يسمى Windows Powershell وافتحه. أقترح أيضًا النقر بزر الماوس الأيمن وتحديد "تشغيل كمسؤول".)
الأمر الأول الذي يجب أن تتعلمه هو ls . هذا سوف يسرد كل شيء في الدليل الحالي. لتبسيط الأمور ، دعنا فقط نجعل مجلد dev الخاص بنا موجودًا في الدليل الرئيسي للكمبيوتر. يمكنك استخدام mkdir dev لإنشاء دليل باسم dev . بسيط جدًا ، أليس كذلك؟ إذا كنت LS مرة أخرى، سترى مجلد جديد المدرجة.

ثم تريد الانتقال إلى دليلك الجديد باستخدام cd dev ، وهو الأمر لتغيير الدليل . انظر ، سطر الأوامر ليس مخيفًا على الإطلاق! إذا كنت بحاجة للعودة إلى الدليل السابق ، فما عليك سوى استخدام القرص المضغوط ...
مرة كنت داخل مجلد ديف الجديد الخاص بك، لقد حان الوقت لبوابة هذا الحزب بدأت. هيه هيه هيه.
ابدأ بنسخ عنوان URL الذي يظهر بعد النقر فوق الزر الأخضر "استنساخ أو تنزيل" على Github. سيبدو مثل هذا: https://github.com/bjk1337/myfirstrepo.git
أوامر لاستنساخ مستودع Git من Github
- استنساخ بوابة https://github.com/bjk1337/myfirstrepo.git
- ls
- cd myfirstrepo - أو أيًا كان اسم الريبو الخاص بك
- ls
بعد ذلك ، يجب أن تكون المحطة الطرفية الخاصة بك شيئًا من هذا القبيل ، حيث تعرض ملف README الذي قمت بإعداده على Github. تهاني! لقد استخدمت Git لأول مرة ، وأنت الآن جاهز لبدء التطوير.

نيتي جيتي شجاع
الآن بعد أن أصبح لديك ريبو على جهازك ، عليك أن تتعلم كيفية استخدامه. لذلك دعونا نسرع قليلاً ونقول إنك كنت تعمل لبعض الوقت في مشروع رائع ولديك بعض الملفات في الدليل. حان الوقت لإلزامهم ودفعهم إلى جيثب.
الإضافة إلى مستودع Git والالتزام به
- git status - سيُظهر لك هذا الأمر الملفات التي لم تتم إضافتها إلى القائمة من أجل التنفيذ التالي. في معظم التطبيقات الطرفية ، ستكون الملفات غير المضافة / المضافة باللون الأحمر / الأخضر ، على التوالي.
- بوابة إضافة. - بإضافة أ. في نهاية الأمر ، ستطلب من git تضمين كل شيء في الدليل. إذا كنت تريد إضافة ملف واحد ، فما عليك سوى استخدام اسم الملف الخاص به. مثل function.php .
- git status - اعتمادًا على ما إذا كنت تستخدم ملف. أو اسم الملف ، كل ما أضفته يجب أن يكون باللون الأخضر الآن.
- git الالتزام -m "إضافة ثلاثة ملفات فارغة" - عند تنفيذ هذه الملفات ، يجب أيضًا ترك رسالة سريعة للسماح لزملائك في الفريق (أو نفسك في المستقبل) بمعرفة ما كان في هذا الالتزام بالضبط. ويقول الاتفاقيات بوابة القياسية التي يجب أن تكون موجزة ومحددة قدر الإمكان، والبدء في الرسالة باستخدام المضارع من الفعل.
ستحتوي المحطة الطرفية الخاصة بك على الكثير من النص الآن ، ويجب أن تبدو هكذا. لكنك الآن تعرف ما يعنيه كل ذلك!

الدفع إلى مستودع Git بعيد مثل Github
الدفع إلى الريبو أسهل من ذلك.
- git status - يجب عليك دائمًا التحقق لمعرفة كيف تبدو الأشياء وللتأكد من أنك في الفرع الصحيح.
- دفع بوابة
- أدخل اسم المستخدم وكلمة المرور لـ Github - انتبه ، سيظل حقل كلمة المرور فارغًا ، حتى أثناء الكتابة. انه بخير. فقط اكتبه واضغط على Enter. إذا استخدمت SSH ، فستتخطى هذه الخطوة.

يمكنك الذهاب إلى حساب Github الخاص بك والتحقق من الريبو ، وستكون ملفاتك هناك ، وتثبيت الرسائل وكل شيء!

التفرع والدمج
الأمران الأخيران اللذان ستحتاجهما إلى التعرف على التعامل مع التفريع والدمج. كما قلت أعلاه ، فإن العمل على فرع يحافظ على أمان قاعدة الشفرة الرئيسية ، وبمجرد أن تصبح تغييراتك رائعة ، يمكنك دمجها معًا مرة أخرى.
يمكن أن تكون صعبة بعض الشيء ، لذلك قد يتطلب الأمر بعض الحث لجعلها تلعب بشكل لطيف.
- git checkout -b “Branch1” - سينشئ هذا الأمر فرعًا جديدًا تسميه ويتبادلك إليه باعتباره الفرع العامل الخاص بك. فهو يجمع بين أوامر git checkout و git Branch في سطر واحد سهل الاستخدام من التعليمات البرمجية.
- المس awesome.html - هذا مجرد أمر حشو لإنشاء ملف html جديد سأدمجه مرة أخرى في الملف الرئيسي.
- ومثلما حدث من قبل ، ستحصل على الحالة ، git add awesome.html ، git الالتزام -m "create awesome.html"
- ستتيح لك حالة git مرة أخرى رؤية أن كل شيء كما ينبغي أن يكون.

إذا حاولت الدفع قبل الدمج ، فستتلقى رسالة مفادها أنك بحاجة إلى تعيين أصل الريبو. الأصل هو اصطلاح تسمية غريب لما يعتبره جهاز الكمبيوتر الخاص بك الريبو البعيد. لذلك ، في الأساس ، أنت تخبرها فقط ، نعم ، لا بأس من دفع هذا الفرع إلى Github كما فعل السيد. إليك خيط جيد حول أصل git من Stack Overflow.
مع هذا بعيدًا ، سيخبرك أنه ذهب إلى الفرع 1 -> الفرع 1.

يمكنك الرجوع إلى الفرع الرئيسي باستخدام git checkout master (لا يوجد تسجيل خروج -b هذه المرة لأنك تستخدم ذلك فقط عند إنشاء فرع جديد ، وليس التبديل. لقد اختلطت أوامري في لقطة الشاشة أدناه وجربت git Branch master لم ينجح لأن السيد موجود بالفعل.
- حالة git - كما هو الحال دائمًا.
- git merge Branch1 - نظرًا لأن كل شيء في هذا الفرع على ما يرام ، يمكننا المضي قدمًا والدمج.
- إذا حصلنا على الحالة مرة أخرى ، فسنرى أننا متقدمون على الأصل / السيد بمقدار التزام واحد. هذا يعني أننا لم ندفع جميع التغييرات التي أجريناها على Github.
- git push لمزامنة الأشياء!

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

وهذا كل شيء! تهانينا! لقد هزت للتو سير عمل git الأساسي. يمكنك القيام بأشياء أكثر تعقيدًا بطريقة ، طريقة ، طريقة أكثر من ذلك باستخدام git ، ولكن هذا قريب جدًا مما ستستخدمه على الأرجح على أساس يومي عندما تبدأ ...
أوه ، شيء آخر!
لا يزال Github Repo ، myfirstrepo ، الذي استخدمته في هذه المقالة موجودًا. لا تتردد في التحقق من ذلك ، أو اللعب به ، أو تفرعه ، أو استنساخه ، أو أي شيء تعتقد أنه سيجعلك تعتاد على استخدام git. استمتع! (وشكرًا لتحملك معي وجميع التلاعبات في git.)
الصورة المصغرة للمادة MchlSkhrv / shutterstock.com
