المقدمة
تخيل أنك تعمل على مشروع برمجي مهم، وفجأة تكتشف أن التعديلات الأخيرة أفسدت كل شيء. تريد العودة للنسخة السابقة، لكنك لا تعرف كيف. أو ربما تعمل مع فريق من المطورين على نفس الكود، وكل واحد يعدّل ملفات مختلفة، فتجد نفسك في فوضى من النسخ المتضاربة والملفات المفقودة. هل هذا السيناريو مألوف؟
هذه بالضبط المشاكل التي يحلها Git و GitHub. إذا كنت مبرمجاً مبتدئاً أو حتى محترفاً لم تستخدم هذه الأدوات بعد، فأنت تفوّت على نفسك أقوى أداة في عالم البرمجة الحديثة. الحقيقة الصادمة: أكثر من 97% من المطورين المحترفين يستخدمون Git يومياً، وعدم معرفتك به قد يكون السبب الوحيد الذي يمنعك من الحصول على وظيفة برمجية.
في هذا الدليل الشامل، سنتعلم Git و GitHub من الصفر، خطوة بخطوة، بأسلوب عملي مباشر بدون تعقيدات نظرية. بنهاية هذا المقال، ستكون قادراً على:
- إنشاء مستودع Git الخاص بك
- تتبع التغييرات في مشاريعك
- التعاون مع مطورين آخرين
- رفع مشاريعك على GitHub
- فهم الأوامر الأساسية واستخدامها بثقة
دعنا نبدأ هذه الرحلة!
ما هو Git؟ ولماذا يحتاجه كل مبرمج؟
التعريف المبسط
Git هو نظام تحكم بالإصدارات (Version Control System) يسمح لك بتتبع التغييرات التي تحدث على ملفاتك عبر الزمن. فكر فيه كآلة زمن لمشروعك البرمجي - يمكنك العودة لأي نقطة سابقة، معرفة من غيّر ماذا ومتى، والعمل على نسخ متعددة من نفس المشروع دون فوضى.
لماذا Git ضروري؟
تخيل أنك تكتب بحث تخرج على Microsoft Word. كل يوم تحفظ نسخة جديدة:
رسالة_نهائية.docxرسالة_نهائية_2.docxرسالة_نهائية_حقاً.docxرسالة_نهائية_أخيرة_والله.docx
هذه طريقة فوضوية ومربكة، أليس كذلك؟ Git يحل هذه المشكلة بأناقة. بدلاً من إنشاء نسخ متعددة، Git يحفظ "لقطات" (snapshots) من مشروعك في كل مرحلة مهمة، ويسمح لك بالتنقل بينها بسهولة.
الفوائد الحقيقية لاستخدام Git
- تتبع التغييرات والتاريخ الكامل تستطيع معرفة بالضبط ما الذي تغيّر، متى، ومن قام بالتغيير. هذا مفيد جداً عند البحث عن سبب ظهور Bug معين.
- العمل الجماعي بدون تضارب عدة مطورين يمكنهم العمل على نفس المشروع في نفس الوقت دون أن يمسح أحدهم عمل الآخر.
- التجربة بأمان (Branching) تستطيع إنشاء فرع (branch) لتجربة ميزة جديدة دون التأثير على الكود الأساسي. إذا نجحت التجربة، تدمجها. إذا فشلت، تحذفها.
- النسخ الاحتياطي الموزع كل مطور لديه نسخة كاملة من المشروع بكل تاريخه، فلا خوف من فقدان البيانات.
- المعيار الصناعي جميع الشركات البرمجية تقريباً تستخدم Git. معرفته شرط أساسي في أي مقابلة عمل.
ما هو GitHub؟ وما الفرق بينه وبين Git؟
هذا السؤال يُطرح كثيراً ويسبب ارتباكاً للمبتدئين، لذا دعنا نوضح:
الفرق الجوهري
Git هو برنامج تثبته على جهازك لإدارة الإصدارات (يعمل محلياً - Offline)
GitHub هو موقع ويب يستضيف مشاريع Git ويوفر ميزات إضافية للتعاون (يعمل أونلاين)
التشبيه البسيط: Git يعمل كبرنامج فوتوشوب على جهازك بينما GitHub يعمل كوسائل التواصل الاجتماعي حيث تنشر وتشارك صورك.
يمكنك استخدام Git بدون GitHub، لكن لا يمكنك استخدام GitHub بدون فهم أساسيات Git.
لماذا GitHub؟
GitHub ليس الخيار الوحيد لاستضافة مشاريع Git (هناك GitLab و Bitbucket وغيرها)، لكنه الأشهر والأكبر. إليك ما يقدمه:
- استضافة مجانية لمشاريعك يمكنك رفع عدد غير محدود من المشاريع العامة (Public) مجاناً، والمشاريع الخاصة (Private) أيضاً.
- التعاون والمراجعة (Pull Requests) ميزات قوية لمراجعة الكود، التعليق عليه، واقتراح التعديلات.
- معرض أعمالك (Portfolio) حسابك على GitHub يُعتبر سيرتك الذاتية البرمجية. أصحاب العمل يطلعون عليه لتقييم مهاراتك.
- المساهمة في المشاريع مفتوحة المصدر معظم المشاريع الكبرى (Linux, VS Code, React) موجودة على GitHub ويمكنك المساهمة فيها.
- GitHub Actions أتمتة عمليات مثل الاختبارات والنشر التلقائي.
التثبيت والإعداد الأولي
الخطوة 1: تثبيت Git
لمستخدمي Windows:
- اذهب إلى git-scm.com
- حمّل النسخة المناسبة لنظامك (64-bit عادة)
- شغّل ملف التثبيت
- اختر الإعدادات الافتراضية (اضغط Next في كل مرة)
- مهم: اختر "Git Bash" كأداة سطر الأوامر
لمستخدمي Mac:
افتح Terminal واكتب:
brew install git
إذا لم يكن لديك Homebrew، ثبّته أولاً من brew.sh
أو ببساطة، عند كتابة أي أمر git لأول مرة، سيطلب منك Mac تثبيته تلقائياً.
لمستخدمي Linux:
# Ubuntu/Debian
sudo apt-get install git
# Fedora
sudo dnf install git
الخطوة 2: التحقق من التثبيت
افتح Terminal (أو Git Bash في Windows) واكتب:
git --version
يجب أن ترى رقم إصدار Git، مثل:
git version 2.43.0
إذا ظهر هذا، تهانينا! Git مثبّت بنجاح.
الخطوة 3: الإعداد الأولي (مهم جداً)
قبل استخدام Git، يجب تعريف نفسك (الاسم والبريد الإلكتروني). هذه المعلومات ستُربط بكل التغييرات التي تقوم بها.
git config --global user.name "اسمك هنا"
git config --global user.email "your-email@example.com"
مثال:
git config --global user.name "Ahmed Ali"
git config --global user.email "ahmed@gmail.com"
للتحقق من الإعدادات:
git config --list
الخطوة 4: إنشاء حساب GitHub
- اذهب إلى github.com
- اضغط "Sign up"
- أدخل بياناتك (استخدم نفس البريد الإلكتروني الذي استخدمته في Git)
- اختر اسم مستخدم احترافي (مثل: ahmed-ali أو ahmedcoder)
- فعّل الحساب عبر البريد الإلكتروني
نصيحة: اسم المستخدم على GitHub سيكون جزءاً من رابط مشاريعك، فاختر اسماً مناسباً واحترافياً.
مفاهيم أساسية يجب فهمها
قبل البدء بالأوامر العملية، دعنا نفهم بعض المصطلحات الأساسية:
Repository (المستودع)
هو المجلد الذي يحتوي على مشروعك وكل تاريخ التغييرات. فكر فيه كمشروع كامل بكل ملفاته وتاريخه.
Commit (التثبيت)
هي "لقطة" (snapshot) من حالة مشروعك في لحظة معينة. كل commit يحتوي على:
- التغييرات التي حدثت
- من قام بها
- متى حدثت
- رسالة توضيحية
Branch (الفرع)
نسخة موازية من المشروع. الفرع الرئيسي يسمى main أو master. يمكنك إنشاء فروع للعمل على ميزات جديدة دون التأثير على الكود الأساسي.
Remote (المستودع البعيد)
نسخة من مشروعك على الإنترنت (مثل GitHub). تستخدمه لمشاركة عملك مع الآخرين أو كنسخة احتياطية.
Clone (استنساخ)
نسخ مشروع كامل من GitHub (أو أي remote) إلى جهازك.
Push (الدفع)
رفع التغييرات من جهازك إلى المستودع البعيد (GitHub).
Pull (السحب)
تحميل أحدث التغييرات من المستودع البعيد إلى جهازك.
دليل عملي: أول مشروع Git خطوة بخطوة
الآن دعنا ننشئ أول مشروع ونتعلم الأوامر الأساسية عملياً.
السيناريو: إنشاء موقع شخصي بسيط
سننشئ مشروعاً بسيطاً لموقع شخصي، ونتتبع تغييراته باستخدام Git.
الخطوة 1: إنشاء مجلد المشروع
# إنشاء مجلد جديد
mkdir my-portfolio
# الدخول للمجلد
cd my-portfolio
الخطوة 2: تهيئة Git في المجلد
git init
ماذا حدث؟
تم إنشاء مجلد مخفي اسمه .git داخل مشروعك. هذا المجلد يحتوي على كل معلومات Git وتاريخ المشروع.
الرسالة التي ستظهر:
Initialized empty Git repository in /path/to/my-portfolio/.git/
الخطوة 3: إنشاء ملف HTML بسيط
أنشئ ملف باسم index.html واكتب فيه:
<!DOCTYPE html>
<html>
<head>
<title>موقعي الشخصي</title>
</head>
<body>
<h1>مرحباً، أنا أحمد</h1>
<p>مبرمج مبتدئ أتعلم Git</p>
</body>
</html>
الخطوة 4: فحص حالة المشروع
git status
ستظهر رسالة مثل:
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
index.html
nothing added to commit but untracked files present
الترجمة: Git يخبرك أن هناك ملف جديد (index.html) لكنه غير متتبع بعد.
الخطوة 5: إضافة الملف للتتبع
git add index.html
أو لإضافة جميع الملفات:
git add .
ماذا حدث؟ الملف الآن في "منطقة الانتظار" (Staging Area)، جاهز للـ commit.
الخطوة 6: إنشاء أول Commit
git commit -m "إضافة صفحة HTML الأساسية"
تفسير الأمر:
git commit= إنشاء commit جديد-m= إضافة رسالة"إضافة صفحة HTML الأساسية"= الرسالة التوضيحية
نصيحة ذهبية: اكتب رسائل commit واضحة ومفيدة. بدلاً من "تعديل" اكتب "إصلاح خطأ في زر تسجيل الدخول".
الخطوة 7: التعديل وإنشاء Commit جديد
الآن لنضيف ملف CSS. أنشئ ملف style.css:
body {
font-family: Arial, sans-serif;
text-align: center;
background-color: #f0f0f0;
}
h1 {
color: #333;
}
ثم عدّل index.html لإضافة رابط CSS:
<head>
<title>موقعي الشخصي</title>
<link rel="stylesheet" href="style.css">
</head>
الآن:
git status
ستجد ملف جديد (style.css) وملف معدّل (index.html).
أضفهما وأنشئ commit:
git add .
git commit -m "إضافة تنسيقات CSS للموقع"
الخطوة 8: عرض تاريخ المشروع
git log
ستظهر قائمة بكل الـ commits:
commit a1b2c3d4... (HEAD -> main)
Author: Ahmed Ali <ahmed@gmail.com>
Date: Mon Feb 5 14:23:10 2026 +0000
إضافة تنسيقات CSS للموقع
commit e5f6g7h8...
Author: Ahmed Ali <ahmed@gmail.com>
Date: Mon Feb 5 14:15:22 2026 +0000
إضافة صفحة HTML الأساسية
نسخة مختصرة:
git log --oneline
رفع المشروع على GitHub
الآن لدينا مشروع محلي مع تاريخ كامل. دعنا نرفعه على GitHub.
الخطوة 1: إنشاء Repository على GitHub
- افتح github.com
- اضغط على علامة + في الأعلى واختر "New repository"
- Repository name:
my-portfolio - Description: "موقعي الشخصي - مشروع تعليمي"
- اختر Public (عام) أو Private (خاص)
- لا تختار "Initialize this repository with a README" (لأن لدينا ملفات بالفعل)
- اضغط Create repository
الخطوة 2: ربط المشروع المحلي بـ GitHub
GitHub سيعطيك أوامر جاهزة، ستكون شبيهة بهذا:
git remote add origin https://github.com/your-username/my-portfolio.git
git branch -M main
git push -u origin main
تفسير الأوامر:
git remote add origin [URL]= إضافة مستودع بعيد وتسميته "origin"git branch -M main= تسمية الفرع الرئيسي "main"git push -u origin main= رفع الفرع main للمستودع البعيد
عند أول push، قد يُطلب منك:
- تسجيل الدخول لحساب GitHub
- إدخال اسم المستخدم وكلمة المرور (أو Personal Access Token)
الخطوة 3: التحقق
ارجع لصفحة Repository على GitHub وقم بتحديث الصفحة. يجب أن ترى ملفاتك (index.html و style.css) مع رسائل الـ commits. تهانينا! مشروعك الآن على GitHub ويمكن لأي شخص رؤيته (إذا كان Public).
الأوامر الأساسية التي يجب حفظها
إليك ملخص سريع للأوامر التي ستستخدمها يومياً:
إنشاء وإعداد
git init # تهيئة مشروع Git جديد
git clone [URL] # استنساخ مشروع موجود
التتبع والحفظ
git status # فحص حالة المشروع
git add [file] # إضافة ملف للـ staging
git add . # إضافة جميع الملفات
git commit -m "رسالة" # إنشاء commit
التاريخ والمعلومات
git log # عرض تاريخ الـ commits
git log --oneline # نسخة مختصرة
git diff # عرض التغييرات غير المحفوظة
العمل مع GitHub
git remote add origin [URL] # ربط بمستودع بعيد
git push origin main # رفع التغييرات
git pull origin main # تحميل أحدث التغييرات
الفروع (Branches)
git branch # عرض الفروع
git branch [name] # إنشاء فرع جديد
git checkout [name] # الانتقال لفرع
git checkout -b [name] # إنشاء فرع والانتقال إليه
git merge [branch] # دمج فرع
التراجع والإصلاح
git checkout -- [file] # التراجع عن تعديلات ملف
git reset HEAD [file] # إزالة ملف من staging
git revert [commit] # التراجع عن commit معين
الفروع (Branches): العمل على ميزات جديدة بأمان
الفروع من أقوى ميزات Git. دعنا نفهمها عملياً.
السيناريو: إضافة صفحة "عني"
نريد إضافة صفحة جديدة لكن بدون التأثير على الكود الأساسي.
الخطوة 1: إنشاء فرع جديد
git checkout -b add-about-page
ماذا حدث؟
- تم إنشاء فرع جديد اسمه
add-about-page - تم الانتقال إليه تلقائياً
الخطوة 2: العمل على الفرع الجديد
أنشئ ملف about.html:
<!DOCTYPE html>
<html>
<head>
<title>عني</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>عن أحمد</h1>
<p>مبرمج شغوف بتعلم التقنيات الجديدة</p>
<a href="index.html">الرئيسية</a>
</body>
</html>
حفظ التغييرات:
git add about.html
git commit -m "إضافة صفحة عني"
الخطوة 3: العودة للفرع الرئيسي
git checkout main
لاحظ: ملف about.html اختفى! لأنه موجود فقط في فرع add-about-page.
الخطوة 4: دمج الفرع (Merge)
بعد التأكد من أن كل شيء يعمل، ندمج الفرع الجديد:
git merge add-about-page
الآن about.html موجود في الفرع الرئيسي!
الخطوة 5: حذف الفرع (اختياري)
git branch -d add-about-page
الأخطاء الشائعة للمبتدئين وحلولها
1. نسيت كتابة رسالة Commit
الخطأ:
git commit
المشكلة: سيفتح محرر نصي (عادة Vim) وقد لا تعرف كيف تخرج منه!
الحل:
اضغط :q! ثم Enter للخروج من Vim.
الطريقة الصحيحة:
git commit -m "رسالتك هنا"
2. عدّلت ملفات ونسيت عمل Add قبل Commit
الخطأ:
git commit -m "تعديلات"
الرسالة:
no changes added to commit
الحل:
git add .
git commit -m "تعديلات"
أو اختصاراً:
git commit -am "تعديلات"
(لكن هذا يعمل فقط مع الملفات المتتبعة مسبقاً، وليس الملفات الجديدة)
3. أريد التراجع عن آخر Commit
الحل:
git reset --soft HEAD~1
هذا يلغي آخر commit لكن يحتفظ بالتغييرات.
4. رفعت كلمة مرور أو ملف حساس بالخطأ
الحل السريع: احذف الملف من المشروع، ثم:
git rm --cached [اسم_الملف_الحساس]
git commit -m "إزالة ملف حساس"
git push
لكن: التاريخ السابق لا يزال يحتوي على الملف. للحذف النهائي، استخدم أداة مثل BFG Repo-Cleaner أو أعد إنشاء Repository من جديد.
الوقاية: أنشئ ملف .gitignore وأضف الملفات الحساسة:
# ملف .gitignore
.env
config.json
passwords.txt
5. Push بطيء جداً أو يفشل
السبب: قد تكون ملفات كبيرة جداً (فيديوهات، صور عالية الدقة، مكتبات).
الحل:
- أضف الملفات الكبيرة لـ
.gitignore - استخدم Git LFS (Large File Storage) للملفات الضخمة
نصائح احترافية لاستخدام Git بفعالية
1. اكتب رسائل Commit واضحة
هذا نموذج رسالة Commit سيئ:
git commit -m "تعديلات"
git commit -m "fix"
git commit -m "المزيد من التغييرات"
هذا نموذج رسالة Commit سيئ:جيد:
git commit -m "إصلاح خطأ في نموذج تسجيل الدخول"
git commit -m "إضافة زر مشاركة على فيسبوك"
git commit -m "تحسين سرعة تحميل الصفحة الرئيسية"
2. قم بـ Commit بشكل متكرر
لا تنتظر حتى تنهي المشروع كاملاً. كل ميزة صغيرة تعمل، اعمل لها commit.
لماذا؟ إذا حدث خطأ، يسهل العودة لنقطة سابقة قريبة.
3. استخدم .gitignore
أنشئ ملف .gitignore في جذر مشروعك:
# Node.js
node_modules/
.env
# Python
__pycache__/
*.pyc
venv/
# IDEs
.vscode/
.idea/
# OS
.DS_Store
Thumbs.db
4. اسحب (Pull) قبل أن تدفع (Push)
عند العمل مع فريق، دائماً:
git pull origin main
# تحل أي تعارضات إن وجدت
git push origin main
5. راجع التغييرات قبل Commit
git diff # ماذا تغيّر؟
git status # أي ملفات معدّلة؟
6. تعلم التعامل مع Merge Conflicts
عندما يعدّل شخصان نفس السطر، يحدث تعارض. Git سيخبرك:
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
الحل: افتح الملف، ستجد:
<<<<<<< HEAD
<h1>مرحباً بكم</h1>
=======
<h1>أهلاً وسهلاً</h1>
>>>>>>> feature-branch
احذف العلامات واختر الإصدار الذي تريده:
<h1>مرحباً بكم</h1>
ثم:
git add index.html
git commit -m "حل تعارض في العنوان الرئيسي"
العمل التعاوني: Pull Requests
عندما تريد المساهمة في مشروع شخص آخر، تستخدم Pull Request (طلب الدمج).
السيناريو: المساهمة في مشروع مفتوح المصدر
الخطوة 1: Fork المشروع (نسخ Repository لحسابك)
الخطوة 2: Clone إلى جهازك
git clone https://github.com/your-username/project-name.git
الخطوة 3: أنشئ فرع للميزة الجديدة
git checkout -b fix-typo
الخطوة 4: قم بالتعديل والـ Commit
git add .
git commit -m "إصلاح خطأ إملائي في README"
الخطوة 5: ارفع الفرع
git push origin fix-typo
الخطوة 6: على GitHub، اضغط "Create Pull Request"
الخطوة 7: صاحب المشروع سيراجع تعديلك ويقبله أو يرفضه أو يطلب تعديلات.
أدوات وإضافات مفيدة
1. GitHub Desktop
هو برنامج مجاني بواجهة رسومية يسهّل إدارة مستودعات Git دون الحاجة لاستخدام سطر الأوامر (Terminal). يتيح لك إنشاء المشاريع، تتبع التعديلات، تنفيذ عمليات commit وpush وpull، وإدارة الفروع بطريقة بسيطة وواضحة.
مناسب لـ: المبتدئين في Git والمطورين الذين يفضلون واجهة مرئية لإدارة الأكواد.
التحميل الرسمي: https://desktop.github.com
2. GitKraken
هو برنامج احترافي لإدارة Git يتميز بواجهة رسومية أنيقة وتجربة استخدام سلسة، مما يجعله مناسبًا للمطورين الأفراد وفرق العمل.
أبرز المميزات:
- عرض بصري تفاعلي للفروع (Branches) وسجل التعديلات.
- أداة مدمجة لحل تعارضات الدمج (Merge Conflicts).
- دعم كامل لنظام **Git Flow** لتنظيم مراحل التطوير.
مناسب لـ: المطورين الذين يبحثون عن إدارة متقدمة لمشاريع Git مع واجهة احترافية.
التحميل الرسمي: https://www.gitkraken.com
3. VS Code Git Integration
يوفر دعمًا مدمجًا لإدارة Git داخل محرر Visual Studio Code دون الحاجة إلى أدوات خارجية، مما يسهل تتبع التعديلات وإدارة المستودعات بكفاءة أثناء البرمجة.
طريقة الاستخدام:
- الوصول إلى أدوات Git عبر أيقونة Source Control في الشريط الجانبي.
- تنفيذ عمليات Commit مباشرة من داخل المحرر.
- عرض التغييرات ومقارنتها جنبًا إلى جنب (Side by Side Diff).
مناسب لـ: المطورين الذين يستخدمون VS Code ويرغبون في إدارة Git بسرعة وفعالية من داخل بيئة العمل نفسها.
4. Oh My Zsh (لمستخدمي Mac/Linux)
Shell محسّن يجعل استخدام Git أجمل:
# بدلاً من
git status
# اكتب فقط
gst
التثبيت: ohmyz.sh
5. امتدادات Chrome للمطورين
- Octotree: عرض ملفات GitHub كشجرة
- Refined GitHub: تحسينات على واجهة GitHub
- GitHub Repository Size: عرض حجم الملفات
حالات استخدام متقدمة
Git Stash: حفظ مؤقت للتغييرات
تخيل أنك تعمل على ميزة، لكن احتجت فجأة للانتقال لفرع آخر. لا تريد عمل commit لعمل غير مكتمل.
الحل:
git stash # حفظ مؤقت
git checkout main # انتقل للفرع الآخر
# اعمل ما تريد
git checkout feature # عودة
git stash pop # استرجاع التغييرات
Git Rebase: إعادة كتابة التاريخ
بدلاً من git merge، يمكنك استخدام rebase لتاريخ أنظف:
git checkout feature
git rebase main
متى تستخدمه؟ عند العمل على فرع شخصي تريد تحديثه بآخر تغييرات main.
تحذير: لا تستخدم rebase على فروع مشتركة!
Git Blame: من كتب هذا الكود؟
git blame index.html
يُظهر من عدّل كل سطر ومتى. مفيد لمعرفة من تسأل عن كود معين.
Git Cherry-pick: نقل Commit محدد
git cherry-pick [commit-hash]
ينقل commit واحد من فرع لآخر بدون دمج كل الفرع.
الأسئلة الشائعة
هل Git صعب التعلم؟
في البداية قد يبدو مخيفاً، لكن الأوامر الأساسية (add, commit, push, pull) بسيطة جداً. 90% من عملك اليومي سيكون بهذه الأوامر الأربعة.
ما الفرق بين Git و SVN؟
Git: موزع - كل مطور لديه نسخة كاملة. SVN: مركزي - يعتمد على سيرفر واحد.
Git أسرع، أقوى، والأكثر شيوعاً حالياً.
هل يمكن استخدام Git لملفات غير برمجية؟
نعم! يمكن استخدامه لتتبع:
- مستندات Word/PDF
- ملفات تصميم (Photoshop, Figma)
- كتابة رسائل الماجستير
- أي ملفات تحتاج تتبع تغييراتها
لكن Git مُحسّن للملفات النصية، فالملفات الثنائية (صور، فيديوهات) ستكون أقل كفاءة.
ماذا لو حذفت ملف بالخطأ؟
طالما عملت commit من قبل، يمكنك استرجاعه:
git checkout HEAD -- [filename]
أو ارجع لـ commit سابق:
git checkout [commit-hash] -- [filename]
كم Repository يمكنني إنشاؤها؟
على GitHub، عدد غير محدود من الـ Public repositories مجاناً. أما الـ Private، فكانت محدودة سابقاً لكن الآن أيضاً غير محدودة للحسابات المجانية.
هل GitHub آمن لمشاريعي الخاصة؟
نعم، الـ Private repositories آمنة ولا يمكن لأحد رؤيتها إلا من تمنحه الصلاحية. لكن لا تضع معلومات حساسة جداً (كلمات مرور، مفاتيح API) حتى في Private repos. استخدم ملف .env واجعله في .gitignore.
كيف أحذف Repository من GitHub؟
- افتح Repository على GitHub
- اذهب لـ Settings
- مرّر للأسفل حتى "Danger Zone"
- اضغط "Delete this repository"
- أدخل اسم Repository للتأكيد
تحذير: الحذف نهائي ولا يمكن التراجع!
مصادر تعليمية إضافية
دورات مجانية
1. Git and GitHub for Beginners - freeCodeCamp (YouTube) دورة فيديو شاملة بالإنجليزية، 4 ساعات.
2. GitHub Learning Lab دروس تفاعلية مباشرة على GitHub. lab.github.com
3. Git Immersion تعليم Git خطوة بخطوة بأمثلة عملية. gitimmersion.com
كتب مجانية
Pro Git Book الكتاب الرسمي لـ Git، متوفر مجاناً بعدة لغات. git-scm.com/book
أدوات تفاعلية
Learn Git Branching تعلم الفروع بطريقة مرئية وتفاعلية. learngitbranching.js.org
Git Visualizer شاهد ماذا يحدث عند كل أمر Git بصرياً.
مجتمعات عربية
- مجموعات فيسبوك: "تعلم البرمجة - عربي"، "GitHub Egypt"
- Discord: سيرفرات برمجة عربية
- Stack Overflow بالعربية: للأسئلة التقنية
خطة تعلم Git في 7 أيام
اليوم 1-2: الأساسيات
- تثبيت Git
- فهم Repository, Commit, Branch
- أول مشروع محلي
- الأوامر: init, add, commit, status, log
اليوم 3-4: GitHub
- إنشاء حساب
- رفع مشروع (push)
- استنساخ مشروع (clone)
- سحب تحديثات (pull)
اليوم 5: الفروع
- إنشاء فروع (branch)
- الانتقال بينها (checkout)
- الدمج (merge)
- حل التعارضات
اليوم 6: التعاون
- Fork مشروع
- Pull Request
- مراجعة كود الآخرين
- المساهمة في مشروع مفتوح المصدر
اليوم 7: التقنيات المتقدمة
- stash
- rebase
- cherry-pick
- .gitignore المتقدم
التمرين النهائي: ساهم في مشروع مفتوح المصدر حقيقي!
الخلاصة والخطوات التالية
ما تعلمناه اليوم
في هذا الدليل الشامل، غطينا:
- ما هو Git ولماذا هو ضروري
- الفرق بين Git و GitHub
- التثبيت والإعداد الكامل
- المفاهيم الأساسية (Repository, Commit, Branch)
- الأوامر الأساسية اليومية
- رفع مشروع على GitHub خطوة بخطوة
- العمل مع الفروع
- الأخطاء الشائعة وحلولها
- نصائح احترافية
- العمل التعاوني والـ Pull Requests
أهم النقاط التي يجب تذكرها
1. Git ليس صعباً معظم عملك اليومي يعتمد على 5-6 أوامر فقط. باقي الأوامر ستتعلمها تدريجياً عند الحاجة.
2. اجعله عادة يومية لا تنتظر حتى تنهي المشروع. استخدم Git من أول سطر كود تكتبه.
3. GitHub هو سيرتك الذاتية أصحاب العمل ينظرون لحسابك على GitHub لتقييم مهاراتك. حافظ على نشاط مستمر.
4. لا تخف من الأخطاء تقريباً كل شيء في Git قابل للإصلاح. جرّب، اخطئ، تعلم.
5. المساهمة في Open Source أفضل طريقة لتطوير مهاراتك وبناء سمعتك المهنية.
خطتك للأسبوع القادم
اليوم الأول:
- ثبّت Git وأنشئ حساب GitHub
- أنشئ أول Repository
الأيام 2-5:
- اختر مشروعاً بسيطاً (موقع شخصي، آلة حاسبة، to-do list)
- اعمل عليه باستخدام Git
- ارفعه على GitHub
اليوم 6:
- Fork مشروع مفتوح المصدر
- حاول إصلاح خطأ بسيط أو تحسين Documentation
- قدّم أول Pull Request
اليوم 7:
- راجع ما تعلمته
- شارك تجربتك على LinkedIn أو Twitter
- ابدأ التفكير في المشروع التالي
رسالة تحفيزية أخيرة
Git و GitHub ليسا مجرد أدوات تقنية - هما بوابتك لعالم البرمجة الاحترافية. كل سطر كود تكتبه وتحفظه في Git هو خطوة نحو هدفك كمبرمج محترف.
لا تقلق إذا بدا الأمر معقداً في البداية. كل مبرمج محترف اليوم كان مبتدئاً يوماً ما. الفرق الوحيد بينك وبينهم هو أنهم بدأوا. والآن أنت بدأت أيضاً.
ابدأ صغيراً:
- مشروع بسيط
- commit واحد في اليوم
- أسبوع واحد من الممارسة
وبعد شهر، ستنظر للوراء ولن تصدق كم تطورت.
نصيحة أخيرة: لا تكتفي بقراءة هذا المقال. افتح Terminal الآن، وابدأ. الفعل أهم من المعرفة.
مصادر مفيدة للتعمق أكثر
الوثائق الرسمية
- Git Documentation: git-scm.com/doc
- GitHub Docs: docs.github.com
أدوات مساعدة
- Git Cheat Sheet: ملخص سريع لكل الأوامر
- GitIgnore.io: مولد ملفات .gitignore حسب نوع مشروعك
- Commitizen: أداة لكتابة رسائل commit احترافية
مشاريع للتدرب
- First Contributions: مشروع مخصص لأول Pull Request
- Good First Issue: قائمة بمشاريع مفتوحة المصدر ترحب بالمبتدئين
الآن، أغلق هذا المقال وافتح Terminal. حان وقت التطبيق!
Happy Coding!


