آموزش git | برگشت به نسخه قبلی (Revert)

بازگشت به نسخه قبلی (Revert)

بازگشت به نسخه قبلی یکی از مهم‌ترین قابلیت‌های Git است که به شما اجازه می‌دهد تغییرات اشتباه را لغو کنید. در این بخش با دستور git revert آشنا می‌شوید که برخلاف git reset، تاریخچه تغییرات را حفظ می‌کند و یک commit جدید برای برگشت به حالت قبل ایجاد می‌کند.

چرا از revert به جای reset استفاده کنیم؟
وقتی شما با دیگران روی یک پروژه کار می‌کنید، نباید تاریخچه commitها را پاک کنید (مثل کاری که git reset انجام می‌دهد). git revert یک commit جدید اضافه می‌کند که تغییرات ناخواسته را خنثی می‌کند، بنابراین بقیه اعضای تیم می‌توانند بدون سردرگمی به کار ادامه دهند.

مراحل استفاده از git revert:

  1. شناسایی commit مورد نظر
    ابتدا باید هش (hash) commitای را که می‌خواهید به آن برگردید پیدا کنید. این کار را با دستور git log --oneline انجام دهید:

    git log --oneline

    خروجی مشابه زیر خواهد بود:

    a1b2c3d اصلاح باگ
    e4f5g6h افزودن ویژگی جدید
    i7j8k9l commit اولیه

    هش commit مورد نظر را یادداشت کنید (مثلاً a1b2c3d).

  2. اجرای دستور revert
    برای برگشت به commitای که بعد از آن تغییرات اشتباه رخ داده است، دستور زیر را وارد کنید:

    git revert <hash-commit>

    مثال:

    git revert a1b2c3d

    Git یک commit جدید ایجاد می‌کند که تغییرات commit مشخص شده را معکوس می‌کند. یک ویرایشگر متنی باز می‌شود تا پیام commit را بنویسید (می‌توانید پیش‌فرض را بپذیرید).

  3. تأیید تغییرات
    پس از اجرای دستور، با git log بررسی کنید commit جدید اضافه شده است:

    git log --oneline

    خروجی مشابه:

    x9y8z7w Revert "اصلاح باگ"
    a1b2c3d اصلاح باگ
    e4f5g6h افزودن ویژگی جدید

نکته مهم:
git revert صرفاً commit مشخص شده را خنثی نمی‌کند؛ بلکه تمام تغییرات آن commit را معکوس می‌کند. اگر commit شامل چندین فایل باشد، تمام آنها به حالت قبل از آن commit برمی‌گردند.

مثال عملی:
فرض کنید فایلی به نام app.js دارید. در commit a1b2c3d یک خط به آن اضافه کرده‌اید که باعث باگ شده است. با اجرای git revert a1b2c3d، Git آن خط را حذف می‌کند و یک commit جدید با عنوان Revert "اصلاح باگ" ثبت می‌کند. فایل app.js اکنون دقیقاً مثل قبل از commit مذکور است.

پرسش و پاسخ این درس

برای ثبت پرسش ابتدا در سایت وارد شوید.

  • 1