Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# ما هو SHA في Github

**SHA** (اختصار لـ Secure Hash Algorithm) هو معرّف فريد يُستخدم في GitHub لتحديد كل **commit** (التزام) بشكل دقيق وغير قابل للتكرار.

## كيف يعمل SHA؟

عند إنشاء commit جديد في Git، يقوم النظام تلقائيًا بإنشاء **SHA hash** — وهو سلسلة نصية مكونة من **40 حرفًا** بالتنسيق السداسي عشري (hexadecimal)، مثل:

```
35c5634a8b2f3d1e9c0ab7f4e5d6c8a912345678
```

وكثيرًا ما يُستخدم الشكل المختصر المكون من **7 أحرف**:

```
35c5634
```

## ما الفائدة من SHA؟

| الفائدة | الشرح |
|---------|-------|
| **التعريف الفريد** | كل commit له SHA مختلف تمامًا عن أي commit آخر |
| **التحقق من السلامة** | يضمن أن محتوى الملفات لم يتغير |
| **التتبع** | يُمكّنك من العودة إلى أي نقطة في تاريخ المشروع |
| **المقارنة** | يسهّل مقارنة الإصدارات المختلفة من الكود |

## كيف تجد SHA في GitHub؟

1. افتح أي مستودع (repository) على GitHub
2. انتقل إلى تبويب **Commits**
3. ستجد بجانب كل commit رمز مختصر — هذا هو SHA

## استخدام SHA في سطر الأوامر

```bash
# عرض سجل الـ commits مع SHA الكامل
git log

# عرض سجل مختصر
git log --oneline

# العودة إلى commit محدد باستخدام SHA
git checkout 35c5634

# مقارنة commit معين بالحالة الراهنة
git diff 35c5634
```

---

> 🔐 **ملاحظة**: يعتمد Git على خوارزمية **SHA-1** لإنشاء هذه المعرّفات، وهي تضمن أن أي تغيير ولو بسيط في محتوى الملفات سينتج عنه SHA مختلف تمامًا.