تعلم Git في 5 دقائق

دليل سريع وسهل للبدء مع Git

ما هو Git؟

Git هو نظام تتبع التوزيع (DVCS) يساعد المطورين على إدارة التغييرات في الكود المصدري بمرور الوقت. تم إنشاؤه بواسطة لينوس تورفالدز في عام 2005 لتطوير نواة لينكس.

ببساطة، Git يسمح لك:

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

لماذا نستخدم Git؟

Git أصبح المعيار في صناعة البرمجة للأسباب التالية:

إنشاء مستودع Git

المستودع (Repository) هو المكان الذي يتم فيه تخزين ملفات مشروعك وتاريخ التغييرات. يمكنك إنشاء مستودع Git بطريقتين:

1. إنشاء مستودع جديد

لإنشاء مستودع جديد في مجلد مشروعك، استخدم الأمر التالي:

$ git init

هذا الأمر ينشئ مجلداً فرعياً اسمه .git يحتوي على جميع الملفات اللازمة لـ Git.

2. استنساخ مستودع موجود

للحصول على نسخة من مستودع موجود، استخدم الأمر git clone متبوعاً بعنوان المستودع:

$ git clone https://github.com/username/repository.git

عند استنساخ مستودع، يقوم Git تلقائياً بإعداد مجلد .git وتنزيل جميع الملفات من المستودع البعيد.

التحقق من حالة المستودع

لمعرفة حالة الملفات في مستودعك، استخدم الأمر:

$ git status

هذا الأمر يعرض الملفات التي تم تغييرها أو إضافتها أو حذفها منذ آخر التزام.

خطأ شائع: نسيان استخدام git status بانتظام. هذا الأمر مهم جداً لمعرفة ما يحدث في مستودعك وتجنب الارتباك.

إضافة الملفات

بعد إنشاء المستودع، تحتاج إلى إضافة الملفات التي تريد تتبعها باستخدام الأمر git add:

إضافة ملف معين

$ git add filename.txt

إضافة جميع الملفات

$ git add .

عند إضافة ملف، يتم نقله من حالة "Untracked" إلى حالة "Staged"، مما يعني أنه جاهز للالتزام.

عمل الالتزامات (Commits)

الالتزام (Commit) هو حفظ التغييرات في تاريخ المستودع. لعمل التزام، استخدم الأمر git commit:

$ git commit -m "وصف التغييرات التي قمت بها"

يجب أن يكون وصف الالتزام واضحاً ومختصراً ويشرح التغييرات التي قمت بها.

إذا قمت بتعديل ملف بعد إضافته (Staged)، ستحتاج إلى إضافته مرة أخرى قبل عمل التزام.

عرض تاريخ الالتزامات

لعرض تاريخ الالتزامات في مستودعك، استخدم الأمر:

$ git log

خطأ شائع: كتابة أوصاف التزامات غير واضحة أو عامة مثل "تحديث" أو "تغييرات". كن محدداً واكتب وصفاً يوضح ماذا قمت ولماذا.

التفريعات (Branching)

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

إنشاء فرع جديد

لإنشاء فرع جديد، استخدم الأمر:

$ git branch new-feature

التبديل بين الفروع

للتبديل إلى فرع موجود، استخدم الأمر:

$ git checkout new-feature

يمكنك أيضاً إنشاء فرع جديد والتبديل إليه في أمر واحد:

$ git checkout -b new-feature

عرض الفروع

لعرض جميع الفروع في مستودعك، استخدم الأمر:

$ git branch

سيتم عرض قائمة بالفروع، مع علامة (*) بجانب الفرع الحالي.

الفرع الرئيسي في Git يسمى عادةً main أو master. من الممارسات الجيدة إنشاء فرع جديد لكل ميزة أو إصلاح تقوم به.

خطأ شائع: العمل مباشرة على الفرع الرئيسي (main/master) بدلاً من إنشاء فرع جديد. هذا قد يؤدي إلى مشاكل عند دمج التغييرات لاحقاً.

دمج الفروع (Merging)

بعد الانتهاء من العمل على فرع جديد، يمكنك دمجه مع الفرع الرئيسي باستخدام الأمر git merge:

خطوات دمج فرع:

  1. التبديل إلى الفرع الذي تريد الدمج فيه (عادةً الفرع الرئيسي):
  2. $ git checkout main
  3. دمج الفرع الذي كنت تعمل عليه:
  4. $ git merge new-feature

حل التعارضات (Resolving Conflicts)

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

كيفية حل التعارضات:

  1. افتح الملف الذي يحتوي على التعارض. ستجد علامات مثل:
  2. <<<<<<< HEAD
    // الكود من الفرع الحالي
    =======
    // الكود من الفرع الذي تدمجه
    >>>>>>> new-feature
  3. قم بتعديل الملف لإزالة العلامات والحفاظ على الكود الذي تريد الاحتفاظ به.
  4. بعد حل التعارض، أضف الملف مرة أخرى:
  5. $ git add filename.txt
  6. أكمل عملية الدمج بالالتزام بالتغييرات:
  7. $ git commit -m "حل تعارضات الدمج"

خطأ شائع: تجاهل التعارضات أو حذف الكود بشكل عشوائي. خذ وقتك لفهم التعارض واختيار الكود الصحيح للاحتفاظ به.

تمرين عملي: التفريع والدمج

جرب هذا التمرين البسيط لتطبيق ما تعلمته:

  1. أنشئ مجلداً جديداً وقم بتهيئة مستودع Git فيه:
  2. $ mkdir my-project
     $ cd my-project
     $ git init
  3. أنشئ ملفاً باسم index.html وأضف بعض HTML بسيط:
  4. <!DOCTYPE html>
    <html>
    <head>
        <title>صفحتي</title>
    </head>
    <body>
        <h1>مرحباً بالعالم</h1>
    </body>
    </html>
  5. أضف الملف وقم بالالتزام:
  6. $ git add index.html
     $ git commit -m "إضافة صفحة HTML أساسية"
  7. أنشئ فرعاً جديداً باسم feature:
  8. $ git checkout -b feature
  9. عدّل الملف index.html بإضافة فقرة:
  10. <body>
        <h1>مرحباً بالعالم</h1>
        <p>هذه صفحتي الأولى</p>
    </body>
  11. أضف التغييرات وقم بالالتزام:
  12. $ git add index.html
     $ git commit -m "إضافة فقرة ترحيبية"
  13. العودة إلى الفرع الرئيسي ودمج الفرع الجديد:
  14. $ git checkout main
     $ git merge feature

مبروك! لقد قمت بإنشاء فرع جديد، إجراء تغييرات، والعودة بالفرع الرئيسي ودمج التغييرات.

خلاصة

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

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

لمزيد من التعلم، جرب استخدام منصات مثل GitHub أو GitLab لاستضافة مستودعاتك ومشاركتها مع الآخرين.