Git وGitHub للمبتدئين: الأوامر اللي هتحتاجها من أول يوم

ليه كل المبرمجين بيستخدموا Git؟ وإيه الفرق بينه وبين GitHub؟ شرح بسيط بالمصري لأهم الأوامر: init وadd وcommit وbranch وpush وpull، مع سيناريو كامل لأول مشروع ليك.

رسم لفروع متشعبة بنقط ملونة بتتجمع في خط واحد، يرمز للفروع والدمج في Git

لو اشتغلت على أي ملف مهم، أكيد عملت حاجة زي دي: مشروع.docx، وبعدين مشروع-نهائي.docx، وبعدين مشروع-نهائي-بجد.docx. Git بيحل المشكلة دي بالظبط، بس للكود، وبطريقة أذكى بكتير.

يعني إيه Git؟ وإيه GitHub؟

  • Git: برنامج على جهازك بيحفظ «لقطات» من مشروعك كل ما تقول له. كل لقطة اسمها commit، وتقدر ترجع لأي واحدة فيهم في أي وقت.
  • GitHub: موقع على النت بتخزّن عليه نسخة من مشروعك. بيسهّل إنك تشتغل من أكتر من جهاز، أو مع حد تاني، أو تعرض شغلك.

يعني Git هو الأداة، وGitHub مكان على النت بيستخدمها. وفيه مواقع تانية شبهه زي GitLab.

ليه هتحتاجه حتى لو شغال لوحدك؟

  • زرار رجوع لأي لحظة: كسرت حاجة؟ ارجع لآخر نسخة كانت شغالة.
  • تجرّب من غير خوف: اعمل فرع للتجربة، ولو فشلت امسحه والأساسي سليم.
  • سجل لشغلك: هتعرف إمتى غيّرت إيه وليه.
  • معرض لشغلك: صفحتك على GitHub بتورّي أصحاب الشغل إنك بتبني فعلًا.

التسطيب والإعداد لأول مرة

نزّل Git من الموقع الرسمي git-scm.com، وبعدها افتح الـ Terminal وعرّفه بنفسك مرة واحدة:

git config --global user.name "اسمك"
git config --global user.email "[email protected]"

الاسم والإيميل دول بيتكتبوا على كل commit تعمله.

الأوامر الأساسية

ابدأ مشروع

cd my-project
git init

git init بتحوّل الفولدر لمستودع Git. بتعملها مرة واحدة في أول المشروع.

شوف الحالة

git status

أكتر أمر هتستخدمه. بيقول لك إيه الملفات اللي اتغيرت، وإيه اللي جاهز يتحفظ.

جهّز واحفظ لقطة

git add index.html style.css
git commit -m "إضافة صفحة الترحيب"
  • git add بتختار الملفات اللي هتدخل في اللقطة الجاية. (git add . بتختار كل التغييرات.)
  • git commit -m بتحفظ اللقطة، والرسالة بتوصف عملت إيه.

شوف التاريخ

git log --oneline

بتعرض كل اللقطات اللي فاتت، كل واحدة في سطر.

اعمل فرع للتجربة

git switch -c new-design

دلوقتي إنت على فرع اسمه new-design. أي حاجة تعملها هنا مش هتأثر على الفرع الأساسي (main). لو التجربة نجحت:

git switch main
git merge new-design

ارفع على GitHub

بعد ما تعمل مستودع جديد فاضي على GitHub، هيديك رابط. اربطه وارفع:

git remote add origin https://github.com/USERNAME/my-project.git
git push -u origin main

وبعد كده، كل ما تعمل commits جديدة، يكفي git push.

هات آخر تحديث

git pull

لو اشتغلت من جهاز تاني، أو حد شريكك رفع تعديلات، git pull بتجيبها عندك.

سيناريو يوم عادي

git pull                          # هات آخر نسخة
# ... اشتغل وعدّل في الملفات ...
git status                        # شوف إيه اللي اتغير
git add .
git commit -m "إضافة صفحة التواصل"
git push                          # ارفع على GitHub

خمس أوامر، وهتبقى عادة في أسبوع.

ملف لازم يبقى في كل مشروع: ‎.gitignore

فيه ملفات ما ينفعش تترفع: كلمات السر، ومفاتيح الـ API، والفولدرات الكبيرة اللي بتتعمل لوحدها. اعمل ملف اسمه .gitignore واكتب فيه أسماءها:

node_modules/
.env
*.log

أخطاء شائعة في الأول

  • نسيان git add: عملت commit وطلع فاضي؟ غالبًا ما اخترتش الملفات.
  • commit واحد ضخم في آخر اليوم: الأحسن commits صغيرة، كل واحد بيعمل حاجة واحدة.
  • الخوف من الـ Terminal: فيه برامج بواجهة رسومية زي GitHub Desktop، وكمان VS Code فيه Git جواه. بس الأوامر الأساسية تستاهل تتعلمها.

الخلاصة

الأمر بيعمل إيه
git init يبدأ مستودع جديد
git status يعرض إيه اللي اتغير
git add يجهّز الملفات للحفظ
git commit -m يحفظ لقطة برسالة
git log --oneline يعرض التاريخ
git switch -c يعمل فرع جديد
git merge يدمج فرع في التاني
git push / git pull يرفع على GitHub / يجيب منه

اتعلم الأوامر دي، واستخدمها من أول مشروع صغير. ولو لسه في الأول خالص، شوف خريطة تعلم البرمجة للمبتدئين.