شعار أوسكار أوسكار كل المقالات

أساسيات Git: تحكّم في كودك بثقة

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

لماذا Git أصلاً؟

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

1. ابدأ مستودعاً

داخل مجلّد مشروعك:

git init

هذا ينشئ مستودعاً (repository) يبدأ بتتبّع المجلّد. أضِف ملف .gitignore لاستثناء ما لا يجب تتبّعه (مثل node_modules أو ملفّات الإعدادات السرّية) — خطوة يتجاهلها المبتدئون فتمتلئ مستودعاتهم بفوضى.

2. الحالة والإضافة والالتزام

دورة العمل اليومية ثلاث خطوات:

git status — ماذا تغيّر؟
git add . — جهّز التغييرات للحفظ.
git commit -m "إضافة نموذج التواصل" — احفظ لقطة برسالة تصفها.

الـcommit هو الوحدة الأساسية في Git: لقطة دائمة يمكنك العودة إليها متى شئت. التزِم كثيراً وبخطوات صغيرة منطقية، لا مرّة واحدة في نهاية اليوم.

3. اكتب رسائل commit واضحة

الرسالة الجيّدة تشرح لماذا لا ماذا فقط. «إصلاح» رسالة سيّئة؛ «إصلاح تكرار فتح البريد في نموذج التواصل» رسالة تفهمها بعد ستّة أشهر. ابدأ بفعل أمر مختصر، وأبقِ السطر الأول تحت 50 حرفاً. مستقبلُك سيشكرك حين تبحث في السِّجل.

قاعدة: الـcommit الواحد = فكرة واحدة. لا تخلط إصلاح خطأ مع إعادة تنسيق مع ميزة جديدة في commit واحد — يصبح السِّجل عديم الفائدة عند المراجعة أو التراجع.

4. الفروع (Branches)

الفرع نسخة موازية تجرّب فيها بأمان دون المساس بالنسخة الأساسية:

git checkout -b feature/contact-form

تعمل على الفرع، تلتزم فيه، وحين تكتمل الميزة تدمجها في الفرع الرئيسي. هكذا يبقى main مستقرّاً دائماً، وتختبر أفكارك في عزلة. هذه عادة أساسية في أي عمل احترافي أو جماعي.

5. الربط مع منصّة بعيدة (GitHub)

لحفظ نسخة سحابية وللتعاون، اربط مستودعك بمنصّة مثل GitHub:

git remote add origin <url>
git push -u origin main

بعدها git push يرفع التزاماتك، وgit pull يجلب تغييرات الآخرين. مستودعك السحابي هو أيضاً نسخة احتياطية: لو تعطّل جهازك، كودك بأمان.

6. حلّ التعارضات (Conflicts)

يحدث التعارض حين يعدّل شخصان السطر نفسه. لا تَفزع — Git يضع علامات واضحة (<<<<<<< و>>>>>>>) حول النسختين. مهمّتك: اختر النصّ الصحيح، احذف العلامات، ثم add وcommit. التعارضات طبيعية في العمل الجماعي، ومع التعوّد تصبح حلّها روتيناً بسيطاً.

7. التراجع بأمان

أخطأت؟ Git يحميك. لإلغاء تعديلات لم تلتزمها بعد: git checkout -- <file>. ولإلغاء آخر commit مع إبقاء التغييرات: git reset --soft HEAD~1. تعلّم الفرق بين الأوامر الآمنة والمدمّرة (مثل reset --hard) قبل استعمالها على عمل مهمّ.

أسئلة شائعة

ما الفرق بين Git وGitHub؟ Git هو الأداة التي تعمل على جهازك، وGitHub منصّة سحابية لاستضافة المستودعات والتعاون. يمكنك استعمال Git دون GitHub، لكنّ الجمع بينهما هو المعتاد.

هل أحتاج سطر الأوامر؟ تساعدك واجهات رسومية (مثل الموجودة في المحرّرات)، لكن فهم الأوامر الأساسية يجعلك أقوى وأقلّ عجزاً حين تختلف الأمور عن المتوقّع.

كم مرّة ألتزم (commit)؟ كلّما أنجزت خطوة منطقية مكتملة. الالتزامات الصغيرة المتكرّرة أسهل في الفهم والتراجع من الالتزامات الضخمة النادرة.

خلاصة

Git ليس عقبة بل حرّية: init للبدء، ودورة status → add → commit اليومية، وفروع للتجربة الآمنة، وpush/pull للتعاون والنسخ الاحتياطي. أتقن هذه الأساسيات وستتعامل مع كودك بثقة مطوّر محترف — وتنسى إلى الأبد ملفّات «final_v2».

تتحكّم في كودك؟ تعلّم الآن أن تكتبه نظيفاً: أساسيات JavaScript الحديثة →