إصلاح · جيت هب وGit
رفض Git الدفع لأن في GitHub تغييرات ليست عندي
تعطّل عملك
ما قد تراه
- الدفع مرفوض وتقول الرسالة إن في GitHub عملاً ليس عندي على جهازي
- تظهر عبارة non-fast-forward أو "updates were rejected"
- كان يعمل أمس، واليوم يفشل بعد أن دفع شخص آخر (أو جهاز آخر) تغييرات
السبب الأرجح
النسخة على الإنترنت فيها تغييرات محفوظة (commits) أحدث من التي على جهازك، فيرفض Git الكتابة فوقها.
افحص أولاً (نحو دقيقتين)
- شغّل git status وتأكد أنك على الفرع الذي تظن أنك عليه.
- شغّل git fetch ثم git log HEAD..origin/main --oneline (باسم فرعك) لترى التغييرات الجديدة.
أمر الإصلاح
ما تكتبه هنا لا يغادر متصفحك. البحث يعمل داخل هذه الصفحة ولا يُرسل شيء إلى خادم ولا إلى ذكاء اصطناعي.
يبقى في هذا المتصفح وعلى هذا الجهاز فقط. تُحذف المفاتيح وكلمات المرور قبل أي حفظ.
لغة الأمر
الصقه في Claude أو ChatGPT أو Gemini أو Cursor ثم اتبع ما يقوله.
بعد أن جرّبته، هل نجح؟
الخطوات
- شغّل git status وgit branch --show-current وgit remote -v واعرض عليّ المخرجات.
- شغّل git fetch ثم اعرض التغييرات الموجودة على GitHub وغير الموجودة عندي، واشرحها بكلمات بسيطة.
- اصنع نسخة أمان أولاً: git branch backup-before-pull.
- أحضر عمل GitHub بـ git pull --rebase (أو git pull إن شرحت لماذا هو الأفضل هنا). وإن ظهر تعارض فتوقف وأرشدني خطوة خطوة.
- شغّل بناء المشروع أو اختباراته ثم git push (دفع عادي، وليس بالقوة).
لا تفعل هذا
- لا تضف --force "لتمرير الدفع فقط": قد يمحو عمل الآخرين.
- لا تحذف مجلد المشروع وتنسخه من جديد قبل حفظ تغييراتك.
- لا تستخدم git push --force ولا --force-with-lease.