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

دقائق القراءة: 8

يُعد التحكم بالإصدارات (Version Control) مهارة أساسية لا غنى عنها لجميع مطوري البرمجيات. فهو يساعدك على إدارة التغييرات التي تطرأ على مشاريعك أو برامجك بكفاءة عالية. يهدف هذا المقال إلى تزويدك بالأساسيات اللازمة لـ Git ونظام التحكم بالإصدارات، مما يمكنك من التعاون بفعالية وإدارة مشاريعك البرمجية بسلاسة.

ما ستتعلمه في هذا الدليل:

  • ما هو Git وما هو التحكم بالإصدارات؟
  • إعداد بيئة Git Bash الخاصة بك.
  • تهيئة مستودعك الأول.
  • إنشاء أول التزام (Commit) لك في Git.
  • إنشاء فروع (Branches) في Git.
  • العودة إلى التزام سابق.
  • إنشاء مستودع بعيد (Remote Repository).
  • مزامنة مستودعك البعيد مع مستودعك المحلي.
  • تحديث مستودع Git الخاص بك (المحلي والبعيد).
  • ماذا تعني كلمة "Origin

المتطلبات المسبقة

نفترض أن لديك بالفعل حسابًا على GitHub. إذا لم يكن لديك، يمكنك التوجه إلى GitHub لإنشاء واحد. ستحتاج أيضًا إلى تنزيل وتثبيت Git Bash من git-scm.com أو gitforwindows.org (إذا كنت تستخدم جهاز كمبيوتر يعمل بنظام Windows). الآن، دعنا نمضي قدمًا ونتعلم عن التحكم بالإصدارات.

ما هو Git وما هو التحكم بالإصدارات؟

Git هو نظام للتحكم بالإصدارات (Version Control System) يُستخدم لتتبع التغييرات التي تُجرى على ملف أو مشروع. قام بإنشائه Linus Torvalds (مبتكر نظام التشغيل Linux). من ناحية أخرى، GitHub هي منصة تعاون مفتوحة المصدر قائمة على السحابة، تتيح للمطورين مشاركة البرمجيات والتعاون في مشاريع مختلفة بسهولة. يمكن لأي شخص، من مشاريع المصادر المفتوحة إلى الفرق الخاصة والمشاريع الفردية، استخدام GitHub. يمكنك ببساطة تحميل الكود الخاص بك وتتبع التغييرات التي تمت في المشروع للاستخدام المستقبلي.

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

إعداد بيئة Git Bash الخاصة بك

لأغراض هذا الدرس، سنقوم بإنشاء مجلد جديد، أسميته babysteps2git. سنستخدمه كمستودع محلي لنا طوال هذا المقال.

مجلد جديد تم إنشاؤه خصيصًا لبرنامج Git التعليمي هذا

داخل مجلد babysteps2git هذا، لدينا ملف index.html، والذي سنستخدمه كأمثلة. لقد أنشأته من واجهة سطر الأوامر المفضلة لدي، Cmder. يمكنك إنشاء ملفك الخاص بكتابة الأمر touch index.html داخل مجلد babysteps2git (يجب أن يتم ذلك من موجه الأوامر الخاص بك) أو يمكنك إنشاء واحد من محرر النصوص الخاص بك.

الآن، دعنا نقوم بإعداد Git عالميًا عن طريق تهيئة اسم المستخدم والبريد الإلكتروني الخاصين بنا (إذا كانت هذه هي المرة الأولى التي تستخدم فيها Git). افتح Git Bash، ثم استخدم الأمر git config --global user.name "اسمك" لتهيئة اسم المستخدم الخاص بك والأمر git config --global user.email "بريدك الإلكتروني" لتهيئة بريدك الإلكتروني. في المثال أدناه، اسم المستخدم الخاص بي على GitHub هو emmanuellar بينما عنوان بريدي الإلكتروني هو emmanuellar805@gmail.com.

تهيئة Git على جهازك

للتحقق مما إذا تمت إضافة تهيئتك، اكتب git config --global user.name للتحقق من اسم المستخدم الخاص بك و git config --global user.email للتحقق من بريدك الإلكتروني. إذا كانت تهيئتك ناجحة، فستحصل على اسم المستخدم وعنوان البريد الإلكتروني الخاصين بك بمجرد كتابة هذه الأوامر والضغط على Enter.

التحقق من تهيئتك

تهيئة المستودع (Initializing your Repository)

الآن سترغب في إخبار Git: "هذا هو المجلد/الدليل الذي أريد أن يعمل Git فيه الآن." لتهيئة مستودع، تأكد من أنك في الدليل الذي تعمل عليه. في حالتي هنا، هو مجلد babysteps2git. ثم اكتب git init واضغط Enter.

تهيئة مستودع Git

إنشاء أول التزام لك في Git (Making Your First Commit)

الالتزام (Committing) في Git يعادل الحفظ عند العمل على المستندات. إنها طريقة لحفظ تغييراتك في المستودع وتخزينها بمعرف فريد ورسالة. يمكن استخدام المعرف والرسالة لتتبع الإصدار الذي تحتاجه من المشروع. هذا هو أحد الاختلافات بين git commit و save as.

قبل أن تتمكن من إجراء التزام، يجب عليك "تجهيز" (stage) عملك. التجهيز هو طريقة لإخبار النظام: "لقد أجريت الكثير من التغييرات على عملي، ولكن هذا التغيير، وذاك، وهذا الآخر هي التي أريد حفظها." لذا، عندما تريد إضافة تغييرات، قم بذلك:

git add اسم-الملفات

إذا كنت ترغب في إضافة جميع الملفات التي أجريت عليها تغييرات، فاكتب git add . بدلاً من ذلك. فقط تأكد من أنك داخل مجلد المشروع.

تجهيز الملفات والالتزام بها في Git

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

git status

إنشاء الفروع في Git (Creating Branches)

لنفترض أنك تعمل على إصدارات مختلفة من مشروع أو تتعاون في مشروع مع بعض الأصدقاء أو الزملاء. من المهم أن يكون لديك فرع يسمى "master"، وهو الفرع الافتراضي لكل مستودع يخزن الكود الأصلي والمعدل من المساهمين المختلفين.

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

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

git branch اسم_الفرع

للانتقال إلى الفرع الجديد (checkout)، استخدم:

git checkout اسم_الفرع

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

يمكن تنفيذ الأمرين أعلاه في وقت واحد باستخدام الأمر:

git checkout -b اسم_الفرع

العودة إلى التزام سابق (Reverting to a Commit)

هنا يأتي شيء آخر مثير للاهتمام في Git: القدرة على التراجع عن التغييرات التي أجريتها بمرور الوقت، وهو ما لا يمكن لـ CTRL+Z فعله. أثناء العمل مع Git، قد ترغب في العودة إلى حالة معينة من الكود الخاص بك، أو حتى العودة إلى إصدار أقدم من عملك. يمكنك القيام بذلك عن طريق العودة إلى الالتزام المحدد الذي تريد العودة إليه. كل التزام نقوم به له معرف فريد (ID) مرتبط به. للحصول على هذا المعرف، يمكنك كتابة:

git log

عرض سجل الالتزامات في Git

بدلاً من ذلك، يمكن تسجيل الإخراج أعلاه في سطر واحد باستخدام:

git log --oneline

عرض سجل الالتزامات في سطر واحد

مما سبق، يمكنك رؤية المعرف (ID) ورسائل الالتزام لكل من الالتزامات. للعودة، اكتب:

git revert معرف_الالتزام

يعيد هذا الأمر الكود إلى حالته في وقت ذلك الالتزام.

العودة إلى التزام سابق في Git

إنشاء مستودع بعيد (Creating a Remote Repository)

لإنشاء مستودع بعيد، سنفتح حسابنا على GitHub ونضغط على زر "New" (كمستخدم GitHub لأول مرة، ربما سترى زر "Create Repository" الأخضر بدلاً من ذلك).

إنشاء مستودع جديد على GitHub

بأي طريقة تفعلها، ستنقلك إلى الصفحة حيث تدخل اسم المستودع الخاص بك ووصفًا لمشروعك. كما يمنحك خيار جعل مستودعك خاصًا (private) أو عامًا (public).

يمكنك أيضًا تهيئة مستودعك بملف read me عن طريق تحديد مربع الاختيار الخاص بـ read me.

خيارات إنشاء المستودع على GitHub

عند النقر على "إنشاء"، سيتم إنشاء مستودع جديد بعنوان URL فريد.

مزامنة مستودعك البعيد مع مستودعك المحلي

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

git remote add origin url

إضافة مستودع بعيد إلى مستودع محلي

تحديث مستودع Git الخاص بك (البعيد والمحلي)

دعنا نمضي قدمًا ونضيف بعض الكود إلى ملف HTML الخاص بنا:

<html lang= "en" > <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge> <title>Document</title> </head> <body> <label for="inputEmail" class="sr-only">Email Address</label> <input type="email" class="form-control" id="inputEmail" placeholder="Password"> </body> </html> 

دعنا نكرر عملية تجهيز (staging) والتزام (committing) تغييراتنا:

git add index.html

git commit -m "added a form"

كما هو الحال، مستودعنا المحلي يسبق المستودع البعيد بالتزام واحد. لتحديث المستودع البعيد، سيتعين علينا دفع عملنا من المستودع المحلي إلى المستودع البعيد باستخدام الكود:

git push origin master

"master" هو الفرع الافتراضي لكل مستودع وغالبًا ما يضم الكود الرئيسي للمشروع.

دفع التغييرات إلى المستودع البعيد

يمكنك أيضًا اختيار إنشاء فرع جديد إذا، على سبيل المثال، قمت بإنشاء ميزة جديدة ولكنك قلق بشأن إجراء تغييرات على الفرع الرئيسي للمشروع (فرع master). ما عليك سوى كتابة git branch اسم_الفرع لإنشاء فرع جديد، واستخدم git checkout اسم_الفرع للتبديل إلى الفرع الجديد.

يمكنك دائمًا استخدام git branch للتأكد من الفروع في هذا المستودع. يشير اسم الفرع الذي بجانبه علامة النجمة إلى الفرع الذي تشير إليه في وقت معين.

التحقق من الفروع في مستودع Git

يمكنك أيضًا دفع التغييرات من فرعك الجديد إلى مستودعك البعيد باستخدام git push origin اسم_الفرع. عندما تقوم بالدفع إلى المستودع البعيد، سيقوم GitHub تلقائيًا بإنشاء الفرع لك على مستودعك البعيد. هذا يسمح للآخرين برؤية التغييرات التي أجريتها.

قد ترغب أيضًا في تحديث فرع المشروع الرئيسي (فرع master) بمحتويات الفرع الجديد البعيد. يمكنك القيام بذلك عن طريق التبديل إلى فرع master وتشغيل git pull origin الفرع_الجديد.

يقوم هذا بتحديث فرع master بجميع التغييرات التي تم تنفيذها على الفرع الجديد.

سحب التغييرات من فرع بعيد إلى فرع محلي

ماذا تعني "Origin"؟

Origin هو اسم مختصر للمستودع البعيد الذي تم استنساخ المشروع منه في الأصل. وبشكل أكثر دقة، يتم استخدامه بدلاً من عنوان URL الخاص بهذا المستودع الأصلي، ويجعل الإشارة إليه أسهل.

لذا، لدفع تغييراتك إلى المستودع البعيد، يمكنك استخدام أحد الأوامر التالية:

git push origin اسم_الفرع

أو

git push https://github.com/اسم_المستخدم/اسم_المستودع.git اسم_الفرع

لاحظ أنه قد يُطلب منك إدخال اسم المستخدم وكلمة المرور. لن تظهر كلمة المرور أثناء إدخالها. فقط اكتبها بشكل صحيح واضغط Enter.

الخلاصة التقنية

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

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *