Git vs GitHub - ما هو التحكم في الإصدار وكيف يعمل؟

هل سبق لك الخلط بين طريقة عمل Git و GitHub؟ لا تقلق - لست وحدك. يمكن أن يكون Git و GitHub خادعين في بعض الأحيان ، ولكن بحلول نهاية هذا المنشور سيكون لديك فهم جيد للاثنين.

في البداية ، قد يكون من المغري الاعتقاد بأن Git و GitHub هما نفس الشيء. لكن في الواقع ليسوا كذلك. في الواقع ، من الممكن استخدام Git بدون GitHub! وفي النهاية ، يوجد الاثنان لأغراض مختلفة.

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

بدون أي مزيد من اللغط ، دعنا نبدأ مع Git.

ما هو جيت؟

Git هو نظام تحكم في الإصدار الموزع (DVCS) يستخدم لحفظ إصدارات مختلفة من ملف (أو مجموعة ملفات) بحيث يمكن استرداد أي إصدار حسب الرغبة.

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

ولكن إذا كان Git عبارة عن نظام تحكم في الإصدار الموزع ، فماذا تعني هذه المصطلحات بالضبط؟

ماذا تعني كلمة "موزعة"؟

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

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

حسنًا ، تعني كلمة "موزعة" توزيع جميع - وليس فقط عدد قليل - إصدارات ملفات المشروع التي سجلها Git. ولكن ما هو بالضبط نظام التحكم في الإصدار؟

ما هو نظام التحكم في الإصدار؟

يشير نظام التحكم في الإصدار (VCS) إلى الطريقة المستخدمة لحفظ إصدارات الملف للرجوع إليها في المستقبل.

حدسيًا ، يتحكم العديد من الأشخاص بالفعل في مشروعاتهم عن طريق إعادة تسمية إصدارات مختلفة من نفس الملف بطرق مختلفة مثل blogScript.js، blogScript_v2.js، blogScript_v3.js، blogScript_final.js، blogScript_definite_final.js، وما إلى ذلك. لكن هذا النهج عرضة للخطأ وغير فعال لمشاريع الفريق.

كما أن تتبع ما تغير ، ومن غيره ، ولماذا تم تغييره هو مسعى شاق مع هذا النهج التقليدي. يوضح هذا أهمية وجود نظام تحكم موثوق به وتعاوني مثل Git.

ومع ذلك ، للحصول على أفضل ما في Git ، من الضروري فهم كيفية تعامل Git مع ملفاتك.

حالات الملفات في Git

في بوابة، وهناك ثلاث ولايات الابتدائية (الشروط) التي ملف يمكن: دولة تعديلها ، نظم الدولة ، أو دولة ملتزمة .

حالة معدلة

الملف في الحالة المعدلة هو ملف تمت مراجعته - ولكن غير ملتزم به (غير مسجل).

بمعنى آخر ، الملفات في الحالة المعدلة هي ملفات قمت بتعديلها ولكنك لم تقم بإرشاد Git صراحة بمراقبتها.

الدولة على مراحل

الملفات في الحالة المرحلية هي ملفات معدلة تم تحديدها - في حالتها الحالية (الإصدار) - ويتم تحضيرها ليتم حفظها (الالتزام) في .gitالمستودع أثناء لقطة الالتزام التالية.

بمجرد أن يتم تنظيم الملف ، فهذا يعني أنك قد سمحت لـ Git صراحة بمراقبة إصدار هذا الملف.

دولة ملتزمة

الملفات في حالة الالتزام هي ملفات مخزنة بنجاح في .gitالمستودع.

وبالتالي ، فإن الملف الملتزم هو ملف قمت بتسجيل نسخته المرحلية في دليل Git (المجلد).

ملاحظة: تحدد حالة الملف المكان الذي سيضعه فيه Git.

مواقع الملفات

هناك ثلاثة أماكن رئيسية قد توجد إصدارات من الملف أثناء التحكم في الإصدار باستخدام Git: دليل العمل أو منطقة التدريج أو دليل Git .

عمل اخراجي

دليل العمل هو مجلد محلي لملفات المشروع. هذا يعني أن أي مجلد تم إنشاؤه في أي مكان على النظام هو دليل عمل.

ملحوظة:

  • الملفات في الحالة المعدلة موجودة في دليل العمل.
  • دليل العمل يختلف عن .gitالدليل. أي أنك تقوم بإنشاء دليل عمل بينما يقوم Git بإنشاء .gitدليل.
  • تحقق من مقالة المقارنة هذه لمزيد من الاختلافات بين المستودعات.

منطقة التدريج

منطقة التدريج - تسمى تقنيًا "index" في لغة Git - هي ملف ، يقع عادةً في .gitالدليل ، يخزن معلومات حول الملفات التالية في السطر ليتم الالتزام بها في .gitالدليل.

ملحوظة:

  • توجد الملفات في الحالة المرحلية في منطقة التدريج.

دليل Git

و .gitالدليل هو المجلد (وتسمى أيضا "مستودع") أن جيت يخلق داخل دليل العمل لديك تعليمات لتتبع.

أيضًا ، .gitالمجلد هو المكان الذي يخزن فيه Git قواعد بيانات الكائنات والبيانات الوصفية للملف (الملفات) الذي طلبت منه مراقبته.

ملحوظة:

  • و .gitالدليل هو حياة جيت - هو العنصر المنسوخ عند استنساخ مستودع من كمبيوتر آخر (أو من منصة على الانترنت مثل جيثب).
  • توجد الملفات في الحالة الملتزمة في دليل Git.

سير عمل Git الأساسي

يبدو العمل مع نظام التحكم في إصدار Git شيئًا كالتالي:

Git مخطط سير العمل الأساسي
  1. تعديل الملفات في دليل العمل.

    لاحظ أن أي ملف تقوم بتغييره يصبح ملفًا في الحالة المعدلة .

  2. قم بترتيب الملفات التي تريد ربطها بالدليل بشكل انتقائي .git.

    لاحظ أن أي ملف تقوم بإضافته (إضافة) إلى منطقة التدريج يصبح ملفًا في الحالة المرحلية .

    يجب أيضًا أن تدرك أن الملفات المقسمة لم يتم وضعها بعد في .gitقاعدة البيانات.

    التدريج يعني تضمين معلومات حول الملف المرحلي في ملف (يسمى "الفهرس") في .gitالمستودع.

  3. قم بإدخال الملف (الملفات) التي قمت بإعدادها في .gitالدليل. أي تخزين لقطة من الملف (الملفات) المرحلية بشكل دائم في .gitقاعدة البيانات.

    لاحظ أن أي إصدار ملف تلتزم به في .gitالدليل يصبح ملفًا في حالة الالتزام .

الجوهر حتى الآن

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

ولكن ، انتظر قليلاً ، إذا ساعدت Git في إدارة وتوزيع إصدارات مختلفة من ملف المشروع بشكل فعال ، فما هو الغرض من GitHub؟

جيثب تبدد الغموض

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

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

لاستضافة (أو مشاركة) مستودع Git على GitHub ، اتبع الخطوات التالية:

الخطوة 1: التسجيل للحصول على حساب جيثب

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

الخطوة 2: إنشاء مستودع بعيد في GitHub

بعد التسجيل للحصول على حساب ، قم بإنشاء منزل (مستودع) في GitHub لمستودع Git الذي تريد مشاركته.

الخطوة 3: قم بتوصيل دليل المشروع Git بالمستودع البعيد

بمجرد إنشاء مستودع بعيد لمشروعك ، اربط دليل المشروع .git- الموجود محليًا على نظامك - بالمخزون البعيد على GitHub.

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

git remote add origin //github.com/yourusername/yourreponame.git

ملحوظة:

  • استبدل yourusernameالرمز أعلاه باسم مستخدم GitHub الخاص بك.

    وبالمثل ، استبدل yourreponameباسم المستودع البعيد الذي تريد الاتصال به.

  • يشير الأمر أعلاه إلى أن git يجب أن تضيف عنوان URL المحدد إلى المشروع المحلي كمرجع بعيد .gitيمكن أن يتفاعل معه الدليل المحلي .
  • و originالخيار في الأمر أعلاه هو الاسم الافتراضي (اسم قصير) بوابة يعطي لاستضافة خادم المخزون الخاص بك عن بعد.

    أي ، بدلاً من عنوان URL الخاص بالخادم ، يستخدم Git الاسم المختصر origin.

  • ليس من الضروري التمسك بالاسم الافتراضي للخادم. إذا كنت تفضل اسمًا آخر بدلاً من ذلك origin، فما عليك سوى استبدال originالاسم الموجود في git remote addالأمر أعلاه بأي اسم تفضله.
  • تذكر دائمًا أن الاسم المختصر للخادم (على سبيل المثال   origin) ليس شيئًا مميزًا! إنه موجود فقط - محليًا - لمساعدتك على الرجوع بسهولة إلى عنوان URL الخاص بالخادم. لذا لا تتردد في تغييره إلى اسم قصير يمكنك الرجوع إليه بسهولة.
  • لإعادة تسمية أي عنوان URL بعيد موجود ، استخدم git remote renameالأمر كما يلي:
git remote rename theCurrentURLName yourNewURLName
  • عندما تقوم باستنساخ (تنزيل) أي ريبو بعيد ، يقوم Git تلقائيًا بتسمية عنوان URL الخاص بهذا الريبو origin. ومع ذلك ، يمكنك تحديد اسم مختلف باستخدام git clone -o yourPreferredNameالأمر.
  • لمشاهدة عنوان URL الدقيق المخزن للأسماء المستعارة مثل origin، قم بتشغيل git remote -vالأمر.

الخطوة 4: قم بتأكيد الاتصال

بمجرد توصيل دليل Git الخاص بك بالمخزون البعيد ، تحقق مما إذا كان الاتصال ناجحًا عن طريق التشغيل git remote -vفي سطر الأوامر.

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

ملحوظة:

  • راجع مقالة "الاتصال بـ SSH" إذا كنت ترغب في الاتصال باستخدام عنوان URL لـ SSH بدلاً من عنوان URL الخاص بـ HTTPS.
  • ومع ذلك ، إذا لم تكن متأكدًا من عنوان URL البعيد الذي تريد استخدامه ، فتحقق من "ما عنوان URL البعيد الذي يجب استخدامه؟" مقالة - سلعة.
  • هل ترغب في تغيير عنوان URL البعيد الخاص بك؟ يعد تغيير عنوان URL لجهاز التحكم عن بُعد دليلًا ممتازًا.

الخطوة 5: ادفع مستودع Git المحلي إلى الريبو البعيد

بعد توصيل دليلك المحلي بنجاح بالمستودع البعيد ، يمكنك بعد ذلك البدء في دفع (تحميل) مشروعك المحلي إلى المنبع.

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

صيغة الشفرة المستخدمة لتحميل (دفع) دليل Git محلي إلى مستودع بعيد هو git push -u remoteName branchName.

بمعنى ، لدفع .gitالدليل المحلي الخاص بك ، وبافتراض أن الاسم المختصر لعنوان URL البعيد هو "origin" ، قم بتشغيل:

git push -u origin master

ملحوظة:

  • يشير الأمر أعلاه إلى أنه يجب على git دفع الفرع الرئيسي المحلي إلى الفرع الرئيسي البعيد الموجود في عنوان URL المسمى origin .
  • من الناحية الفنية ، يمكنك استبدال originالخيار بعنوان URL للمستودع البعيد. تذكر أن originالخيار هو فقط اسم مستعار لعنوان URL الذي قمت بتسجيله في دليلك المحلي .git.
  • تقوم -uالعلامة (إشارة إشارة المنبع / التتبع) تلقائيًا بربط .gitالفرع المحلي للدليل بالفرع البعيد. هذا يسمح لك باستخدام git pullدون أي حجج.

الخطوة 6: قم بتأكيد التحميل

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

ملحوظة:

  • قد تحتاج إلى تحديث صفحة المستودع البعيد حتى تنعكس التغييرات.
  • لدى GitHub أيضًا مرفقًا اختياريًا مجانيًا لتحويل المستودع البعيد إلى موقع ويب وظيفي. دعنا نرى "كيف" أدناه.

انشر موقعك على الويب باستخدام صفحات GitHub

بعد دفع مشروعك إلى مستودعك البعيد ، يمكنك بسهولة نشره على الويب مثل:

  1. تأكد من أن اسم ملف HTML الرئيسي لمشروعك هو index.html.
  2. على النظام الأساسي لموقع الويب الخاص بـ GitHub ، انتقل إلى مستودع المشروع الذي تريد نشره وانقر فوق علامة تبويب إعدادات المستودع .
  3. قم بالتمرير لأسفل إلى قسم صفحات GitHub وقم بتغيير فرع المصدر من لا شيء إلى رئيسي .
  4. بعد ذلك ، سيتم عرض إشعار يقول ، "تم نشر موقعك على //your-username.github.io/your-github-repo-name/ ".
  5. يمكنك الآن عرض مشروعك ونشره على عنوان URL المحدد.

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

بالمختصر

GitHub عبارة عن منصة عبر الإنترنت لاستضافة (أو مشاركة) مستودعات Git. يساعدك على إنشاء وسيلة للتعاون بسهولة في المشاريع مع أي شخص ، في أي مكان ، وفي أي وقت.

هل ما زلت في شك؟

هل ما زلت في حيرة من أمر الخط الفاصل بين Git و GitHub؟ لا تقلق - لقد قمت بتغطيتك. فيما يلي خمسة اختلافات رئيسية بين Git و GitHub.

الفرق 1: Git مقابل GitHub - الوظيفة الأساسية

Git هو نظام تحكم في الإصدار الموزع يسجل إصدارات مختلفة من الملف (أو مجموعة من الملفات). يتيح للمستخدمين الوصول إلى أي من الإصدارات المسجلة ومقارنتها وتحديثها وتوزيعها في أي وقت.

ومع ذلك ، فإن GitHub هي أساسًا منصة استضافة لاستضافة مستودعات Git عبر الإنترنت. يتيح للمستخدمين الاحتفاظ بمستودعهم البعيد خاصًا أو مفتوحًا للمساعي التعاونية.

الفرق 2: Git مقابل GitHub - منصة التشغيل

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

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

الفرق 3: جيت مقابل جيثب - المخترعون

بدأ Linus Torvalds تطوير Git في أبريل 2005.

أسس كريس وانستراث وبي جيه هيت وتوم بريستون-ويرنر وسكوت تشاكون موقع GitHub.com في فبراير 2008.

الفرق 4: Git مقابل GitHub - المشرفون

في يوليو 2005 ، سلم Linus Torvalds صيانة Git إلى Junio ​​C. Hamano - الذي كان المشرف الرئيسي منذ ذلك الحين.

واستحوذت Microsoft على GitHub في أكتوبر 2018.

الفرق 5: جيت مقابل جيثب - المنافسون

البدائل الشائعة لـ Git هي Mercurial و Team Foundation Version Control (TFVC) و Perforce Helix Core و Apache Subversion و IBM Rational ClearCase.

أقرب المنافسين لـ GitHub هم GitLab و Bitbucket و SourceForge و Cloud Source Repositories و AWS CodeCommit.

الكل في الكل

Git و GitHub هما كيانان مختلفان يساعدان في إدارة الملفات واستضافتها. بمعنى آخر ، يعمل Git على التحكم في إصدارات الملفات بينما GitHub عبارة عن نظام أساسي لاستضافة مستودعات Git.

مورد مفيد

  • كيفية استخدام Git - دليل مذهل مع نصائح رائعة