شرح Git للمبتدئين بالعربي: دليل الأوامر الأساسية
DevOps والأدوات

شرح Git للمبتدئين بالعربي: دليل الأوامر الأساسية

تعلّم Git من الصفر — التثبيت، أول commit، branches، merge، حل التعارضات، والرفع على GitHub. كل أمر بمثال عملي.

م
مؤسس LahbabiGuide
4 دقائق قراءة
شارك:

لماذا Git؟

Git نظام التحكّم بالإصدارات الأكثر استخداماً في العالم. يسمح لك بـ:

  • حفظ نسخ من مشروعك عبر الزمن
  • العودة لأيّ نسخة سابقة
  • العمل بالتوازي مع فريق بدون تضارب
  • تتبّع من غيّر ماذا ومتى ولماذا

بدون Git، يصبح مشروع أيّ مطوّر فوضى بعد أسبوع.

التثبيت

Windows: حمّل من git-scm.com Mac: brew install git Linux: sudo apt install git (أو dnf/pacman)

تحقّق:

bash
git --version
# git version 2.44.0

الإعداد الأولي (مرّة واحدة)

bash
git config --global user.name "اسمك"
git config --global user.email "[email protected]"
git config --global init.defaultBranch main
إعلان

البدء بمشروع

مشروع جديد

bash
mkdir my-project
cd my-project
git init

سترى رسالة Initialized empty Git repository.

استنساخ مشروع موجود

bash
git clone https://github.com/user/project.git
cd project

الدورة الأساسية: ثلاث مراحل

Git يعمل بثلاث "مناطق":

  1. Working Directory — ملفاتك الحقيقية التي تعدّل عليها
  2. Staging Area — ملفات مُحضّرة للـ commit
  3. Repository — نسخة محفوظة في تاريخ Git

المسار: تعدّل → addcommitpush.

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

git status — ماذا تغيّر؟

bash
git status

يُظهر الملفات الجديدة، المعدّلة، والمُجهّزة.

git add — تجهيز الملفات

bash
# ملف واحد
git add index.html

# كل الملفات المعدّلة
git add .

# ملفات بنمط
git add "*.css"

git commit — حفظ نقطة تاريخية

bash
git commit -m "إضافة صفحة التواصل"

قاعدة ذهبية: اكتب رسائل commit واضحة ومحدّدة. "إصلاحات" سيئة — "إصلاح خطأ حساب الضريبة في السلّة" ممتازة.

git log — عرض التاريخ

bash
git log                    # كامل
git log --oneline          # سطر واحد لكل commit
git log --graph --all      # رسم بياني للفروع

الربط مع GitHub

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

اذهب إلى github.com/new، أنشئ مستودعاً بدون README/.gitignore.

ربط مشروعك المحلي

bash
git remote add origin https://github.com/USER/REPO.git
git branch -M main
git push -u origin main

العمل اليومي

bash
git pull        # احضر آخر تحديثات من GitHub
# ... تعدّل الملفات ...
git add .
git commit -m "رسالة"
git push        # ارفع للـ GitHub

Branches (الفروع)

الفرع نسخة موازية من مشروعك — تطوّر ميزة جديدة بدون كسر الأصلي.

bash
# أنشئ فرعاً جديداً وانتقل إليه
git checkout -b feature/login

# بعد الانتهاء والـ commit، ادمجه
git checkout main
git merge feature/login

# احذف الفرع بعد الدمج
git branch -d feature/login

عرض كل الفروع

bash
git branch           # محلية
git branch -a        # محلية + بعيدة

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

أحياناً يُعدّل شخصان نفس السطر — Git لا يستطيع الدمج تلقائياً.

bash
git merge feature/x
# Auto-merging index.html
# CONFLICT (content): Merge conflict in index.html

افتح الملف، ستجد:

<<<<<<< HEAD
محتواك الحالي
=======
محتوى الفرع الآخر
>>>>>>> feature/x

احذف علامات <<<<<<<، =======، >>>>>>> واترك المحتوى الصحيح. ثم:

bash
git add index.html
git commit -m "دمج feature/x مع حل التعارض"

.gitignore — استبعاد ملفات

أنشئ ملف .gitignore في جذر المشروع:

# Node
node_modules/
*.log

# Env
.env
.env.local

# Build
dist/
.next/

# IDE
.vscode/
.idea/

# OS
.DS_Store
Thumbs.db

Git يتجاهل هذه الملفات تماماً.

التراجع عن التغييرات

تراجع عن ملف لم يُضف بعد

bash
git checkout -- file.js       # أو: git restore file.js

إلغاء add قبل الـ commit

bash
git reset HEAD file.js         # أو: git restore --staged file.js

تعديل آخر commit

bash
# تعدّل الملفات ثم:
git add .
git commit --amend -m "رسالة جديدة"

⚠️ لا تُعدّل commits تمّ دفعها للـ remote إن كان يستخدمها أحد.

التراجع عن commit (آمن)

bash
git revert HEAD

يُنشئ commit جديد يعكس التغييرات — تاريخياً نظيف.

Pull Request (على GitHub)

الطريقة الاحترافية للمساهمة في مشروع:

  1. Fork المشروع على GitHub
  2. Clone الـ fork محلياً
  3. أنشئ فرعاً جديداً: git checkout -b fix/typo
  4. عدّل، commit، push
  5. افتح Pull Request من الواجهة

صاحب المشروع يراجع ويدمج.

أخطاء شائعة

  • "fatal: not a git repository" — أنت خارج مجلد Git. اذهب للمجلد الصحيح.
  • "Permission denied (publickey)" — أضف مفتاح SSH على GitHub
  • "Your branch is ahead of origin/main by X commits" — عندك commits محلية لم تُرفع — شغّل git push.

الأسئلة الشائعة

Git vs GitHub — ما الفرق؟

Git أداة تعمل على جهازك. GitHub موقع يستضيف مستودعات Git عبر الإنترنت. يمكن استخدام Git بدون GitHub (على خوادم خاصّة، GitLab، Bitbucket).

ما هو HEAD؟

مؤشّر لآخر commit في الفرع الحالي. HEAD~1 = commit قبل آخر واحد، وهكذا.

fork vs clone؟

  • Clone: نسخة محلية من مستودع (لك أو لغيرك)
  • Fork: نسخة في حسابك على GitHub من مستودع شخص آخر — للمساهمة بـ PR
شارك:
المزيد من DevOps والأدوات
اقرأ أيضاً

مقالات ذات صلة