تكتب git status أو git add . فيصفعك Git بالرسالة الشهيرة:
fatal: not a git repository (or any of the parent directories): .git
هذا أكثر أخطاء Git شيوعًا للمبتدئين — ومعناه بسيط جدًا بمجرد أن تفهم كيف يفكّر Git.
كيف يفكّر Git: مجلد .git هو المستودع
كل مستودع Git هو ببساطة مجلد عادي يحتوي مجلدًا مخفيًّا اسمه .git — فيه
كل التاريخ والفروع والإعدادات. عندما تشغّل أي أمر Git، يبحث عن .git في:
- المجلد الحالي.
- ثم المجلد الأب، ثم أبيه… حتى جذر القرص.
إذا لم يجده في أيٍّ منها → fatal: not a git repository. الرسالة إذًا لا
تقول "شيء مكسور"، بل تقول: "أنت واقف في المكان الخطأ، أو لا يوجد مستودع
أصلًا".
التشخيص في 10 ثوانٍ
pwd # أين أنا الآن؟ (cd على ويندوز)
ls -a # هل يوجد مجلد .git هنا؟ (dir /a على ويندوز)
الأسباب الأربعة وحلولها
1) أنت في المجلد الخطأ (السبب الأول)
فتحت طرفية جديدة فبدأت في مجلد المستخدم بدل مجلد المشروع:
cd path/to/my-project # انتقل إلى مجلد مشروعك
git status # ✅ يعمل الآن
💡 في VS Code افتح الطرفية بـ Ctrl+` — تُفتح دائمًا في مجلد المشروع الحالي.
2) المشروع لم يُهيَّأ كمستودع بعد
مجلد جديد أنشأته بنفسك لا يصبح مستودعًا تلقائيًّا:
cd my-project
git init # ينشئ مجلد .git — المشروع صار مستودعًا
git add .
git commit -m "أول commit"
3) تريد مشروعًا موجودًا على GitHub
لا تنشئ مجلدًا فارغًا ثم تحتار — الاستنساخ يجهّز كل شيء:
git clone https://github.com/user/repo.git
cd repo # ⚠️ لا تنسَ الدخول للمجلد بعد الاستنساخ!
نسيان cd repo بعد الاستنساخ سبب كلاسيكي لهذا الخطأ.
4) مجلد .git حُذف أو تلف
إذا كان المشروع يعمل سابقًا وتوقّف فجأة، تحقق:
ls -a # هل اختفى .git؟
- إذا كان المشروع على GitHub: أسهل حل هو استنساخه من جديد.
- إذا كان محليًّا فقط:
git initيبدأ تاريخًا جديدًا (التاريخ القديم ضاع مع.gitالمحذوف — وهذا درس في أهمية الرفع إلى remote).
قائمة تحقّق سريعة
pwd— هل أنا فعلًا داخل مجلد المشروع؟ls -a— هل يوجد.gitهنا أو في مجلد أعلى؟- هل نسيت
cdبعدgit clone؟ - هل هذا مشروع جديد يحتاج
git initلمرة واحدة؟
الخلاصة
fatal: not a git repository = "لا يوجد مجلد .git من هنا حتى جذر القرص".
تسعون بالمئة من الحالات تُحل بـ cd إلى المجلد الصحيح، والباقي بـ git init
لمشروع جديد أو git clone لمشروع موجود.
أتقن الأساسات في مسار Git الكامل بالعربي، وتعرّف على الفرق بين Git و GitHub، وإذا قابلت تعارضات الدمج فراجع حل Merge Conflict خطوة بخطوة.