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

مكتمل

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

اسم آخر لنظم التحكم بالإصدار VCS هو نظام إدارة تكوين البرامج (SCM). وفي الواقع غالبًا ما يُستخدم المصطلحان بالتبادل، توجد وثائق GIT الرسمية على الموقع git-scm.com. من الناحية الفنية، التحكم بالإصدار ليس سوى واحدة من الممارسات التي تنطوي عليها SCM. يمكن استخدام VCS لمشاريع أخرى غير البرامج، بما في ذلك الكتب والبرامج التعليمية عبر الإنترنت.

يمكنك باستخدام VCS القيام بما يلي:

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

Git هو نظام تحكم في الإصدار سريع ومتعدد الاستخدامات وقابل للتطوير بدرجة كبيرة ومجاني ومفتوح المصدر. منشئه الرئيسي هو لينوس تورفالدس، منشئ Linux.

التحكم في الإصدار الموزع

استخدمت مثيلات سابقة من VCSes، مثل CVS وSubversion (SVN) وPerforce، خادمًا مركزيًا لتخزين محفوظات المشروع. تعني هذه المركزية أن ملقمًا واحدًا أيضا يحتمل أن يكون نقطة فشل واحدة.

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

مصطلحات Git

لفهم Git، عليك أن تفهم المصطلحات. فيما يلي قائمة قصيرة من المصطلحات التي يستخدمها مستخدمو Git بشكل متكرر. لا تقلق بشأن التفاصيل في الوقت الراهن؛ ستصبح كل هذه المصطلحات مألوفة في أثناء العمل من خلال التدريبات في هذه الوحدة النمطية.

  • شجرة العمل: مجموعة الدلائل والملفات المتداخلة التي تحتوي على المشروع الجاري العمل عليه.

  • المستودع: دليل موجود في المستوى العلوي لشجرة العمل، حيث يحتفظ Git بكل المحفوظات وبيانات التعريف لمشروع ما. يشار إلى المستودعات دائمًا تقريبًا باسم repos. المستودع المجرد هو الذي لا يشكل جزءًا من شجرة العمل؛ فهو يُستخدم للمشاركة أو النسخ الاحتياطي. عادةً ما يكون المستودع المجرد دليلاً يحمل اسمًا ينتهي بـ .git — على سبيل المثال، project.git.

  • التجزئة: رقم يتم إنتاجه بواسطة دالة تجزئة تمثل محتويات ملف أو عنصر آخر كعدد ثابت من الأرقام. يستخدم Git تجزئات تصل إلى 160 بت. تتمثل إحدى ميزات استخدام التجزئة في أنه يمكن لـ Git معرفة ما إذا كان الملف قد تغير عن طريق تجزئة محتوياته ومقارنة النتيجة بالتجزئة السابقة. إذا تم تغيير طابع الوقت والتاريخ الخاص بالملف، ولكن لم يتم تغيير تجزئة الملف، فإن Git يعلم أنه لم يتم تغيير محتويات الملف.

  • العنصر: يحتوي مستودع Git على أربعة أنواع من العناصر,، يتم تحديد كل منها بشكل فريد بواسطة تجزئة SHA-1. يحتوي عنصر كائن ثنائي كبير الحجم على ملف عادي. عنصر الشجرة يمثل دليلاً؛ يحتوي على أسماء وتجزئة وأذونات. عنصر التثبيت يمثل إصدارًا معينًا من شجرة العمل. العلامة هي اسم مرفق بالتثبيت.

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

  • الفرع: فرع هو سلسلة مسماة من التثبيتات المرتبطة. أحدث تثبيت على الفرع يسمى الرأس. يسمى الفرع الافتراضي،‏ الذي يجري إنشاؤه عند تهيئة مستودع،‏ باسم main،‏ وغالبا master في Git. رئيس الفرع الحالي يسمى HEAD. الفروع هي ميزة مفيدة بشكل لا يصدق لـ Git لأنها تسمح للمطورين بالعمل بشكل مستقل (أو معًا) في الفروع ثم دمج تغييراتهم لاحقًا في الفرع الافتراضي.

  • المستودع البعيد: المستودع البعيد هو مرجع مسمى لمستودع Git آخر. عند إنشاء مستودع، يقوم Git بإنشاء المستودع البعيد باسم origin وهو المستودع البعيد الافتراضي لعمليات الدفع والسحب.

  • الأوامروالأوامر الفرعيةوالخيارات: يتم تنفيذ عمليات Git باستخدام أوامر مثل git push وgit pull. git هو أمر وpush أو pull أمر فرعي. يحدد الأمر الفرعي العملية التي تريد أن يقوم Git بتنفيذها. غالبًا ما تكون الأوامر مصحوبة بخيارات تستخدم واصلات (-) أو واصلات مزدوجة (--). على سبيل المثال، git reset --hard

ستصبح هذه المصطلحات وغيرها مثل push وpull أكثر منطقية في القريب العاجل. ولكن عليك أن تبدأ في مكان ما، وربما تجد أنه من المفيد العودة ومراجعة مصطلحات المسرد هذه بعد الانتهاء من هذه الوحدة النمطية.

سطر أوامر Git

تتوفر العديد من واجهات المستخدم الرسومية المختلفة لـ Git، مثل GitHub Desktop. العديد من محرري البرامج مثل Visual Studio Code من Microsoft لهم أيضًا واجهة لـ Git. جميعهم يعملون بشكل مختلف ولديهم حدود مختلفة. لا أحد منها ينفذ كل وظائف Git.

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

Git وGitHub

قد تتساءل في أثناء العمل مع Git، عن الفرق بين الميزات التي يقدمها، والميزات المقدمة على GitHub.

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

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

تشمل الميزات الرئيسية التي يوفرها GitHub ما يلي:

  • المشكلات
  • المناقشات
  • طلبات السحب
  • الإعلامات
  • بطاقات عنونة
  • الإجراءات
  • نسخ المستودع
  • المشاريع

لمعرفة المزيد عن GitHub، راجع الوحدة النمطية Microsoft Learn بعنوان مقدمة إلى GitHubأو وثائق تعليمات بدء استخدام GitHub.

الخطوة التالية هي تجربة Git بنفسك!