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

Git: التراجع عن كوميت

آخر تحديث

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

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

أي أمر تستخدم

SituationCommand
التراجع عن كوميت أقدم واحد مع الإبقاء على كل ما بعدهgit revert <hash>
التراجع عن كوميت دفعته بالفعلgit revert <hash>
التراجع عن آخر 3 كوميتات محلية مع الاحتفاظ بالعملgit reset --soft HEAD~3
التراجع عن آخر 3 كوميتات محلية مع تجاهل العملgit reset --hard HEAD~3
التراجع عن نطاق بكوميتات عكسية جديدةgit revert HEAD~3..HEAD

reset vs revert

Behaviorgit resetgit revert
يعيد كتابة السجلنعملا
آمن على الكوميتات المدفوعةلانعم
ينشئ كوميت جديدًالانعم
يعمل على كوميتات قديمة في منتصف السجللانعم
يمكنه تجاهل التغييراتنعم (--hard)لا

مثال تطبيقي

تراجع عن كوميت قديم محدد - حتى لو كان مدفوعًا بالفعل - دون المساس بالكوميتات التي جاءت بعده.

StepCommandResult
1git log --onelineاعثر على هاش الكوميت السيئ (مثل a1b2c3d)
2git revert a1b2c3dكوميت جديد يعكسه؛ والكوميتات اللاحقة لا تُمس
3git pushشارك الإصلاح - دون إعادة كتابة أي سجل

الأسئلة الشائعة حول التراجع عن كوميت في Git

كيف أتراجع عن كوميت أقدم دون فقدان الكوميتات التي تليه؟
استخدم git revert <hash>. ينشئ revert كوميت جديدًا يعكس فقط الكوميت الذي تحدده - ويبقى كل كوميت بعده تمامًا كما كان. اعثر على الهاش أولًا عبر git log --oneline. وإذا تعارض العكس مع تغييرات لاحقة، يتوقف Git مؤقتًا لتحل التعارض ثم تنفّذ git revert --continue.
كيف أتراجع عن عدة كوميتات دفعة واحدة؟
للكوميتات المحلية فقط، يزيل git reset --soft HEAD~3 آخر ثلاثة كوميتات مع إبقاء تغييراتها في الـ stage (استخدم --hard لتجاهلها). أما الكوميتات المدفوعة فاعكس النطاق بدلًا من ذلك: يعكس git revert --no-commit HEAD~3..HEAD الثلاثة جميعًا، ثم يسجّل git commit واحد عملية التراجع.
كيف أتراجع عن كوميت دفعته بالفعل؟
استخدم git revert <hash> بدلاً من reset. ينشئ revert كوميت جديدًا يلغي تغييرات الكوميت المستهدف مع إبقاء السجل سليمًا. هذه هي الطريقة الآمنة للتراجع عن الكوميتات المشتركة - فإعادة كتابة السجل المدفوع باستخدام reset تُجبر الجميع على مواءمة نسخهم.
متى أستخدم reset ومتى أستخدم revert؟
استخدم reset عندما تكون الكوميتات لك وحدك وما زالت محلية: فهو ببساطة يعيد الفرع إلى الوراء وكأنها لم تحدث قط. واستخدم revert عندما يكون الكوميت مدفوعًا أو مشتركًا أو في منتصف السجل: فهو يلغي التغييرات بكوميت جديد يمكن للجميع سحبه بأمان.
هل يمكنني التدرّب على هذا عبر الإنترنت؟
نعم. افتح ساحة الطرفية لتشغيل هذه الأوامر في صدفة حقيقية داخل متصفحك، دون الحاجة إلى تثبيت أي شيء. كما تتناول دورة Git التفاعلية المجانية من Coddy التراجع عن التغييرات خطوة بخطوة.
Coddy programming languages illustration

تعلّم Git مع Coddy

ابدأ الآن