التحكم بالإصدارات: git و github

ahmed x86
0


 لا شك فيه ان فى هذا العصر أداة git اللتي طورها لينوس تورفادوس لإدارة الأكواد والتحديثات والخصائص فى برنامجك هي العمود الفقري لكل المشاريع الـ open source الأن وعدد لا بأس بيه من المشاريع مغلقة المصدر لأنها تضمن لك أن تري ماذا حصل وتقارن بين الكود القديم والجديد فى هذا المقال نتعرف سويا على أداة git

تم تطوير أداة git عام 2005 لإدارة كود لينكس فى البداية لان احد المطوريين حاول عمل هندسة عكسية لأداة bitkeeper اللتي كان يتتطور بها linux فصنع لينوس تورفادوس هذي الأداة فى خلال اسبوعين وكانت بسيطة جدا على وقتها لإدارة الكود لكن مؤخرا صار بإمكان اي احد يستخدمها مما ادي إلي ظهور ادوات ادارة git على الانترنت بدل محلي على النظام مثل github عام 2008 في هذا المقال سنتعرف على اهم اؤامر git

الأمر الأول: git init

هذا الأمر هو أول امر تكتبه عندما تنشئ المجلد وتريد جعله يعمل بنظام git حيث يقوم بوضع مجلد اسمه .git فيه كل الاكواد فيما بعد وهناك حالات للملفات داخل المشروع

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

  • U (Untracked) يعني ملف جديد لم يتم تتبعه بواسطة Git بعد، ولم تتم إضافته إلى النظام.

  • M (Modified) يعني أن الملف تم تعديله بعد آخر عملية حفظ (commit)، ولكن التعديلات لم يتم تسجيلها بعد.

  • D (Deleted) يعني أن الملف تم حذفه من المشروع، وGit لاحظ هذا الحذف لكنه لم يتم تأكيده بعد في commit.

  • A (Added) يعني أن الملف تم إضافته حديثًا إلى Git (تم عمل git add له)، وسيتم تضمينه في أول commit قادم.

  • R (Renamed) يعني أن الملف تم تغيير اسمه (أو تم نقله مع تغيير الاسم)، وGit اكتشف ذلك.


الأمر الثاني: git add


الامر هذا هو ما يأخذ الكود حقك يجعله داخل مجلد .git بمعني اصح يزيله من Untracked ويجعله فى Added حيث انه يجعله فى الـ stageing area، هذا المكان اللذي يكون فيه كل الملفات اللتي تم اضافتها لكن ما زال لا يوجد عليها تعليق

وهناك عدة طرق للإضافة لكنها جميعها تشبه بعض مثل:

git add .

هذا يضيف جميع الملفات والمجلدات داخل ساحة الانتظار

git add file.html 
git add file2.html

طريقة غير عملية لاضافة ملف ملف

git add file.html file2.html 

يضيف الملفين مرة واحدة وطريقة عملية

git add folder/*

يضيف مجلد ما بكل ما بداخله

git add folder/file3.html

تضيف ملف من داخل المجلد لساحة الانتظار


الأمر الثالث: git commit

امر git commit هو مجرد امر ليخرج الملفات الAdded لانها تكون جاهزة , يعني ان الملف خلاص تم كتابة الكود داخله وتمام بدون أي مشاكل

ويكتب هكذا

git commit -m “massege”


الأمر الرابع: git push

لو كان المستودع تم توصيله بمستضيف online مثل github هذا الامر يرسل التعديلات له ويكتب هكذا اول مرة تربط المستودع المحلي بمستودع على الانترنت

git push -u origin main  

حيث -u ترمز الي الربط وتستخدم اول مرة فقط ويكفي

وكلمة origin نادر ما يتم تغيرها لكنها تدل انها على الخط الرئيسي لتطوير المشروع

وكلمة main عادة ما تتغير من main الي master او غيره لكن هذين الشائعين وهي تدل على الbranch الحالي حيث قد يكون هناك مشروع يعمل عليه 3 اشخاص مثلا وشخص يريد اضافة خاصية جديدة فاا يضيفها فى branch مختلف يسميه مثلا test ولا تظهر فى الصفحة الرئيسية للمشروع

لكن كل الحذر ما تم رفعه لا يمكن حذفه مهما حصل ابسط حل حذف المستودع ورفعه من جديد لان احيانا تتسرب مفاتيح على الاستضافة حق git وتسرب كل معلومات الشركة بالخطاء

5. git pull

هذا الأمر عكس git push تمامًا، حيث يقوم بجلب آخر التعديلات من المستودع الموجود على الإنترنت مثل GitHub ودمجها مع مشروعك المحلي.

يُستخدم عندما يكون هناك أكثر من شخص يعمل على نفس المشروع، وتريد تحديث ملفاتك بآخر التغييرات.

يكتب هكذا:

git pull origin main

origin هو اسم المستودع البعيد (remote repository)

main هو اسم الفرع (branch) الذي تريد جلب التحديثات منه

ببساطة:

git pull = تحميل + دمج التعديلات الجديدة إلى جهازك

6. التراجع عن آخر تعديل (HEAD~1)

في Git يوجد مفهوم مهم اسمه HEAD وهو يشير إلى آخر نسخة (commit) في المشروع.

إذا أردت الرجوع خطوة للخلف عن آخر تعديل يمكنك استخدام:

git reset HEAD~1

هذا الأمر يعني:

ارجع إلى قبل آخر commit خطوة واحدة

ماذا يعني HEAD~1؟

HEAD = آخر نقطة وصلت لها في المشروع

~1 = خطوة واحدة للخلف

~2 = خطوتين للخلف وهكذا

أنواع الرجوع (مهم جدًا):

Soft reset

git reset --soft HEAD~1

يرجع commit لكن يحتفظ بالتعديلات داخل الملفات (في staging area)

Mixed reset (الافتراضي)

git reset HEAD~1

يرجع commit ويخرج الملفات من staging area لكن يحتفظ بالتعديلات داخل الملفات

Hard reset (خطير)

git reset --hard HEAD~1

يحذف كل شيء ويرجعك للحالة السابقة تمامًا (بدون رجعة)

⚠️ هذا النوع يجب استخدامه بحذر لأنه قد يفقدك التعديلات نهائيًا

1. git clone

هذا الأمر يُستخدم عندما تريد تحميل مشروع كامل من الإنترنت إلى جهازك لأول مرة.

مثلاً إذا كان هناك مشروع على GitHub وتريد نسخه عندك:

git clone https://github.com/user/repo.git

هذا الأمر يقوم بـ:

تحميل كل ملفات المشروع

إنشاء مجلد جديد باسم المشروع

تفعيل Git داخله تلقائيًا

ببساطة: git clone = نسخ مشروع كامل من الإنترنت إلى جهازك

1. git branch

في Git يمكنك إنشاء “فروع” من المشروع، كل فرع يعمل عليه شخص أو ميزة مختلفة بدون التأثير على النسخة الأساسية.

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

git branch new-feature

لعرض الفروع الموجودة:

git branch

الفرع الحالي يظهر بجانبه علامة (*)

1. git merge

هذا الأمر يستخدم لدمج فرع مع فرع آخر.

مثلاً: عندما تنتهي من العمل في فرع new-feature وتريد دمجه مع main:

أولاً تذهب للفرع الرئيسي:

git checkout main

ثم تدمج:

git merge new-feature

ببساطة: git merge = دمج تغييرات فرع داخل فرع آخر

1. حذف الفرع (git branch -d)

بعد ما تنتهي من الفرع وتدمجه، يمكنك حذفه:

git branch -d new-feature

هذا يحذف الفرع بشكل آمن إذا كان مدموج مسبقًا.

أما إذا أردت الحذف بالقوة حتى لو لم يتم دمجه:

git branch -D new-feature

⚠️ الفرق:

d- حذف آمن

D-حذف اجباري

إرسال تعليق

0 تعليقات

إرسال تعليق (0)

#buttons=(اوافق) #days=(20)

موقعنا يستخدم ملفات تعريف الارتباط (Cookies) لتحسين تجربتك. تحقق الآن
Ok, Go it!