الدليل التعليمي لـ Git يوفّر المفاهيم الأساسية والمتقدمة لـ Git و GitHub.
Git هو نظام تحكم بالنسخ الموزّعة ومستخدم على نطاق واسع في العالم. تم تطويره لإدارة المشاريع بسرعة وكفاءة عالية. يسمح GIT بالنسخ لنا و مراقبة العمل والتعاون مع أعضاء الفريق في نفس مساحة العمل.

سيساعدك هذا الدليل على فهم نظام التحكم بالنسخ الموزع Git عبر سطر الأوامر بالإضافة إلى GitHub. يتم تنفيذ الأمثلة في هذا الدليل على نظام Windows، ولكن يمكننا أيضًا تنفيذ العمليات نفسها على أنظمة تشغيل أخرى مثل Linux (Ubuntu) و MacOS.

المفاهيم الأساسية لـ Git و GitHub

Git هو أساس العديد من الخدمات مثل GitHub وGitLab، ولكن يمكننا استخدام Git دون استخدام أي خدمات Git أخرى. يمكن استخدام Git بشكل خاص وعام.

Git هو نظام تحكم بالنسخ الموزّع مفتوح المصدر. تم تصميمه للتعامل مع المشاريع الصغيرة والكبيرة بسرعة وكفاءة عالية. تم تطويره لتنسيق العمل بين المطورين. يسمح نظام التحكم بالنسخ لنا بتتبع العمل والتعاون مع أعضاء الفريق في نفس مساحة العمل.

تم إنشاء Git بواسطة Linus Torvalds في عام 2005 لتطوير نواة Linux. كما يُستخدم أيضًا كأداة مهمة للتحكم بالنسخ الموزع لـ DevOps.

Git سهل التعلم ولديه أداء سريع. إنه أفضل من أدوات إدارة التحكم بالنسخ الأخرى مثل Subversion و CVS و Perforce و ClearCase.

بعض الميزات الملحوظة لـ Git على النحو التالي:

المفاهيم الأساسية لـ Git و GitHub
  • مفتوح المصدر : Git هو أداة مفتوحة المصدر. تم إصدارها تحت رخصة GPL (الرخصة العامة العامة).
  • قابل للتوسيع : Git قابل للتوسيع، مما يعني أنه عندما يزداد عدد المستخدمين، يمكن لـ Git التعامل بسهولة مع مثل هذه الحالات.
  • موزع : إحدى ميزات Git العظيمة هي أنه موزع. يعني ذلك أنه بدلاً من تحويل المشروع إلى جهاز آخر، يمكننا إنشاء “نسخة مطابقة” من السيرفر بأكمله. بالإضافة إلى ذلك، بدلاً من وجود سيرفر مركزي واحد فقط يتم إرسال التغييرات إليه، يمتلك كل مستخدم سيرفره الخاص الذي يحتوي على تاريخ الالتزام الكامل للمشروع. لا نحتاج إلى الاتصال بالسيرفر البعيد. العملية مخزنة فقط في السيرفر المحلي. إذا لزم الأمر، يمكننا دفع هذه التغييرات إلى السيرفر بعيد.
  • الأمان
    يستخدم وظيفة التجزئة الآمنة SHA1 لتسمية وتحديد الكائنات داخل السيرفر. يتم التحقق من الملفات والالتزامات واستردادها عن طريق التحقق الخاص بها في وقت الاستلام.
  • السرعة
    Git سريع جدًا، لذلك يمكنه إكمال جميع المهام في وقت قصير. يتم إجراء معظم عمليات Git على السيرفر المحلي، لذا يوفر سرعة هائلة. أيضًا، يتواصل نظام التحكم بالنسخ المركزي باستمرار مع خادم في مكان ما.
  • دعم التطوير غير الخطي
    يدعم Git التفرع والدمج السلس، مما يساعد في تصور وتصفح التطوير غير الخطي. يمثل الفرع في Git إلتزامًا واحدًا.
  • التفرع والدمج
    التفرع والدمج هما ميزتان رائعتان لـ Git، مما يجعله مختلفًا عن أدوات إدارة التحكم بالنسخ الأخرى. يسمح Git بإنشاء عدة فروع دون التأثير على بعضها البعض. يمكننا القيام بمهام مثل الإنشاء والحذف والدمج على الفروع، وتستغرق هذه المهام بضع ثوانٍ فقط.
  • ضمان البيانات
    يضمن نموذج البيانات Git سلامة البيانات التشفيرية لكل وحدة من مشروعنا. يوفر هوية فريدة لكل التزام من خلال خوارزمية SHA. يمكننا استرداد وتحديث التزام بواسطة تعريف الالتزام الخاص به. معظم أنظمة التحكم بالنسخ المركزية لا توفر مثل هذه السلامة بشكل افتراضي.
  • منطقة التجهيز
    منطقة التجهيز هي أيضًا وظيفة فريدة من نوعها في Git. يمكن اعتبارها كمعاينة للتزامنا التالي، علاوة على ذلك، هي منطقة وسيطة حيث يمكن تنسيق الالتزامات ومراجعتها قبل الانتهاء. عندما تقوم بالتزام، يأخذ Git التغييرات الموجودة في منطقة التجهيز ويجعلها كالتزام جديد. يُسمح لنا بإضافة وإزالة التغييرات من منطقة التجهيز. يمكن اعتبار منطقة التجهيز كمكان يقوم فيه Git بتخزين التغييرات.

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

  • الحفاظ على تاريخ نظيف
    يسهل Git مع Git Rebase؛ إنها واحدة من أكثر الميزات المفيدة في Git. يستحضر أحدث التزامات من الفرع الرئيسي ويضع كودنا في الأعلى من ذلك. بالتالي، يحافظ على تاريخ نظيف للمشروع.

بعض الفوائد الرئيسية لاستخدام Git على النحو التالي:

  • توفير الوقت
  • العمل دون اتصال بالإنترنت
  • التراجع عن الأخطاء
  • تتبع التغييرات
المفاهيم الأساسية لـ Git و GitHub
المفاهيم الأساسية لـ Git و GitHub

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

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