Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

Git Revert

آخر تحديث

git revert يتراجع عن كوميت عبر إنشاء كوميت جديد يطبّق عكس تغييراته. ولأنه يضيف إلى السجل بدلًا من إعادة كتابته، فإن revert هو الطريقة الآمنة للتراجع عن كوميت تم دفعه بالفعل - وعلى خلاف git reset، فإنه لا يجبر الجميع على التوفيق مع فرع أُعيدت كتابته.

جرّب هذه الأوامر في ساحة الطرفية - صدفة حقيقية في متصفحك، دون أي شيء لتثبيته.

git revert يترك الـ commit السيئ في مكانه ويضيف commit جديدًا يطبّق عكسه - فلا يُعاد كتابة التاريخ أبدًا.

الصياغة

CommandWhat it does
git revert HEADيتراجع عن أحدث كوميت
git revert <hash>يتراجع عن كوميت محدد باستخدام الهاش
git revert HEAD~2..HEADيتراجع عن نطاق من الكوميتات
git revert -n <hash>يتراجع لكن دون عمل كوميت بعد (يهيّئ فقط)
git revert -m 1 <merge-hash>يتراجع عن كوميت دمج مع الإبقاء على الأصل 1

أثناء التراجع

إذا واجه التراجع تعارضًا، فحُلّه ثم تابع.

CommandWhat it does
git revert --continueيستأنف بعد حل التعارضات
git revert --abortيلغي التراجع الجاري
git revert --skipيتخطى الكوميت الحالي ويتابع

revert vs reset

Behaviorgit revertgit reset
يعيد كتابة السجللانعم
آمن على الكوميتات المدفوعةنعملا
ينشئ كوميت جديدنعملا
يتراجع عن كوميت في المنتصفنعممتعب

الأسئلة الشائعة حول git revert

ما الفرق بين git revert و git reset؟
git revert يضيف كوميتًا جديدًا يتراجع عن تغييرات كوميت أقدم، مع إبقاء السجل سليمًا - وهو آمن للكوميتات التي دفعتها بالفعل. أما git reset فينقل مؤشر فرعك إلى الوراء ويعيد كتابة السجل، وهذا مقبول للكوميتات المحلية لكنه خطير على الفروع المشتركة. استخدم revert للتراجع عن الكوميتات العامة، و reset للتراجع عن الكوميتات المحلية.
كيف أتراجع عن كوميت تم دفعه بالفعل؟
شغّل git revert <hash> (أو git revert HEAD للأحدث)، ثم ادفع كوميت التراجع الجديد. ولأن revert لا يعيد كتابة السجل، فهذه هي الطريقة الصحيحة للتراجع عن كوميت مشترك - دون force-push ودون إرباك لزملاء الفريق الذين سحبوه بالفعل.
كيف أتراجع عن كوميت دمج؟
كوميت الدمج له أصلان، لذا يحتاج Git إلى معرفة أي خط من السجل ينبغي الإبقاء عليه. استخدم git revert -m 1 <merge-hash>، حيث يخبر -m 1 الـ Git بأن يبقي على الأصل الأول (وهو عادةً الفرع الذي دمجت داخله). التراجع عن الدمج يلغي التغييرات المدموجة لكنه يبقي الدمج في السجل.
هل يمكنني التراجع عن عدة كوميتات دفعة واحدة؟
نعم. مرّر نطاقًا مثل git revert HEAD~2..HEAD للتراجع عن آخر كوميتين، أو اذكر عدة هاشات. ينشئ Git افتراضيًا كوميت تراجع واحدًا لكل كوميت تم التراجع عنه؛ أضف -n لتهيئة كل عمليات التراجع دون عمل كوميت، ثم أنشئ أنت كوميتًا واحدًا بنفسك.
هل يمكنني التدرب على هذا عبر الإنترنت؟
نعم. افتح ساحة الطرفية لتشغيل git revert في صدفة حقيقية داخل متصفحك - دون أي شيء لتثبيته. كما يغطي كورس Git التفاعلي المجاني من Coddy التراجع عن التغييرات خطوة بخطوة.
Coddy programming languages illustration

تعلّم Git مع Coddy

ابدأ الآن