Git: التراجع عن آخر commit
آخر تحديث
للتراجع عن أحدث commit، قرّر ما الذي ينبغي أن يحدث لتغييراته. احتفظ بها في منطقة التجهيز باستخدام git reset --soft HEAD~1، أو احتفظ بها خارج التجهيز باستخدام git reset HEAD~1 البسيط، أو تخلّص منها باستخدام git reset --hard HEAD~1. إذا كان الـ commit خاطئًا قليلًا فقط، فإن git commit --amend يصلحه في مكانه. إذا كان قد دُفع بالفعل، فاستخدم git revert بدلًا من إعادة كتابة التاريخ. وللتراجع عن commit أقدم أو عن عدة منها دفعة واحدة، راجع صفحة التراجع عن commit في Git.
جرّب هذه في ساحة الطرفية - صدفة حقيقية في متصفحك، لا شيء لتثبيته.
اختر ما تفعله بالتغييرات
| Goal | Command |
|---|---|
| التراجع عن الـ commit، والاحتفاظ بالتغييرات مُجهّزة | git reset --soft HEAD~1 |
| التراجع عن الـ commit، والاحتفاظ بالتغييرات غير مُجهّزة | git reset HEAD~1 |
| التراجع عن الـ commit، وتجاهل التغييرات | git reset --hard HEAD~1 |
| إصلاح آخر commit (الرسالة أو الملفات) | git commit --amend |
| التراجع عن commit دفعته بالفعل | git revert HEAD |
مثال تطبيقي
تراجع عن آخر commit وأعد عمله برسالة أفضل.
| Step | Command | Result |
|---|---|---|
| 1 | git reset --soft HEAD~1 | أُزيل الـ commit، والتغييرات تبقى مُجهّزة |
| 2 | git commit -m "clearer message" | أعد عمل commit بنفس التغييرات |
أسئلة شائعة عن التراجع عن آخر commit في Git
كيف أتراجع عن آخر commit مع الاحتفاظ بالتغييرات؟
شغّل
git reset --soft HEAD~1. هذا يزيل آخر commit لكنه يترك تغييراته مُجهّزة، فتستطيع إعادة عملها في commit على الفور. ولكي تبقى التغييرات غير مُجهّزة في شجرة العمل بدلًا من ذلك، استخدم git reset HEAD~1 (الوضع الافتراضي).كيف أتراجع عن آخر commit وأحذف التغييرات؟
شغّل
git reset --hard HEAD~1. هذا يزيل الـ commit ويتجاهل تغييراته من شجرة العمل. إنه إجراء مدمّر - إن كنت قد تحتاج العمل، فاستخدم --soft بدلًا منه، أو استعده لاحقًا عبر git reflog.ماذا لو كنت أحتاج فقط إلى إصلاح رسالة الـ commit؟
استخدم
git commit --amend. فهو يعيد فتح آخر commit لتتمكن من تعديل رسالته (وإعادة تجهيز الملفات إذا لزم الأمر) دون إنشاء commit منفصل. تجنّب تعديل commit دفعته بالفعل، لأن ذلك يعيد كتابة التاريخ.كيف أتراجع عن آخر commit بعد دفعه؟
استخدم
git revert HEAD. ينشئ revert commit جديدًا يعكس الأخير، تاركًا التاريخ سليمًا - الخيار الآمن للفروع المشتركة. أما عمل reset لـ commit مدفوع فيُجبر الجميع على التوفيق مع فرع أُعيدت كتابته.هل يمكنني التدرّب على هذا عبر الإنترنت؟
نعم. افتح ساحة الطرفية لتشغيل هذه الأوامر في صدفة حقيقية داخل متصفحك - لا شيء لتثبيته. كما يغطّي كورس Git التفاعلي المجاني من Coddy التراجع عن التغييرات خطوة بخطوة.