diff --git a/index.md b/index.md new file mode 100644 index 0000000..d34d583 --- /dev/null +++ b/index.md @@ -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 مختلف تمامًا.