Git Commit --amend
آخر تحديث
يستبدل git commit --amend أحدث commit بآخر جديد، مما يتيح لك إصلاح رسالته أو إضافة ملفات نسيت تجهيزها. إنه لا يضيف commit ثانيًا؛ بل يعيد كتابة الأخير. ولأن ذلك يغيّر hash الـ commit، فلا تعدّل سوى الـ commits التي لم ترفعها بعد.
جرّب هذه الأوامر في ساحة الطرفية - صدفة حقيقية داخل متصفحك، دون الحاجة إلى تثبيت أي شيء.
الصياغة
| Command | What it does |
|---|---|
git commit --amend | يحرّر آخر commit ورسالته |
git commit --amend -m "new message" | يغيّر رسالة آخر commit مباشرةً في السطر |
git commit --amend --no-edit | يضيف الملفات المجهّزة مع الإبقاء على الرسالة نفسها |
حالات شائعة
| Goal | Command |
|---|---|
| إصلاح خطأ مطبعي في الرسالة الأخيرة | git commit --amend -m "fixed message" |
| إضافة ملف منسي إلى آخر commit | git add file ثم git commit --amend --no-edit |
| تعديل commit تم رفعه بالفعل (بحذر) | عدّله ثم git push --force-with-lease |
الأسئلة الشائعة حول git commit --amend
كيف أغيّر رسالة آخر commit لديّ؟
شغّل
git commit --amend -m "new message" لاستبدالها مباشرةً في السطر، أو git commit --amend لفتح المحرّر وإعادة كتابتها هناك. هذا يعيد كتابة آخر commit بالرسالة الجديدة - لا تفعل ذلك مع commit سبق أن رفعته إلا إذا كنت مستعدًا لتنفيذ force push.كيف أضيف ملفًا منسيًا إلى آخر commit؟
جهّز الملف باستخدام
git add <file>، ثم شغّل git commit --amend --no-edit. تحافظ الراية --no-edit على رسالة الـ commit الحالية وتكتفي بدمج التغييرات المجهّزة حديثًا في الـ commit السابق.هل ينشئ git commit --amend commit جديدًا؟
لا - إنه يستبدل آخر commit بدلاً من إضافة واحد. تبدو النتيجة وكأنها commit واحد، لكنه تقنيًا commit جديد بـ hash جديد يحلّ محلّ القديم. ولهذا السبب يتطلب تعديل التاريخ المشترك تنفيذ force push.
هل من الآمن تعديل commit تم رفعه؟
بحذر فقط. التعديل يعيد كتابة الـ commit، لذا بعد الرفع ستحتاج إلى
git push --force-with-lease، وهو ما قد يربك أي شخص سبق أن سحب النسخة الأصلية. على فرع مشترك، فضّل commit جديدًا أو git revert بدلاً من التعديل.هل يمكنني التدرّب على هذا عبر الإنترنت؟
نعم. افتح ساحة الطرفية لتشغيل
git commit --amend في صدفة حقيقية داخل متصفحك - دون الحاجة إلى تثبيت أي شيء. كما يغطّي مساق Git التفاعلي المجاني من Coddy إصلاح الـ commits خطوة بخطوة.