انتقل إلى محتوى الدرس

Inverse Commits in git revert فكرة الالتزام العكسي المضاد

تراجع عن تعديلات أي التزام سابق بأمان تام دون مسح التاريخ عبر إنشاء التزام عكسي مضاد بالأمر git revert وخياري --no-edit و--no-commit.
1 صفوف تعليمية
Version Control
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

عندما تكتشف أن التزاماً سابقاً قد أدخل خطأً برمجياً في المشروع، ستحتاج إلى طريقة تلغي أثره دون مسح السجل التاريخي. يتميز الأمر git revert <commit> بأنه أداة تراجع آمنة تماماً لا تعيد كتابة التاريخ؛ إذ يفحص الالتزام المستهدف، ويحسب الفروق العكسية الدقيقة له (فيحذف كل سطر أضافه ذلك الالتزام، ويعيد كل سطر حذفه)، ثم يسجل التزاماً جديداً تماماً في قمة السجل:

  • حفظ كامل للتاريخ الرقابي: يبقى كل من الالتزام الأصلي والتزام التراجع ظاهرين في git log لتوثيق دورة الإصلاح.
  • آمن تماماً في العمل الجماعي: لأنه يضيف التزاماً جديداً للأمام ولا يمسح بصمات سابقة يعتمد عليها الفريق.
مخطط يوضح كيف يحسب الأمر git revert الفروق العكسية لالتزام سابق ويسجل التزاماً جديداً يحافظ على التاريخ
Shell
# Undo the most recent commit safely with a new inverse commit
git revert HEAD --no-edit

# Inspect history: both commits remain intact
git log --oneline -n 2
# e5f9a01 (HEAD -> main) Revert "Add experimental banner"
# b8c4d12 Add experimental banner