در آموزش‌های قبل، گیت را معرفی کردیم و نحوه کارکرد آن‌را توضیح دادیم ( گیت برای مبتدیان ) و همچنین ترفند‌ها و نکاتی کاربردی در مورد گیت را بررسی کردیم؛ در این مقاله می‌خواهیم یک ترفند جدید را بررسی کنیم.

فرض کنید شما یک یا چند کامیت در پروژه خود اضافه کردید؛ اما به دلیل یک اشتباه نیاز دارید تا وضعیت پروژه را به چند کامیت قبل بازگردانید؛ در این مقاله می‌خواهیم نحوه بازگشت به یک یا چند Commit قبل‌تر را مورد بررسی قرار دهیم.

 

خنثی کردن آخرین commit

قطعاً شرایط زیادی پیش می‌آید که در آن شما واقعاً می‌خواهید آخرین کامیت خود را به کامیت قبلی تغییر دهید. به عنوان مثال برای بازسازی کامل یا حتی حذف آن در این موارد، بهترین دستور “ reset ” است:

git reset --soft HEAD~1

دستور  reset  شاخه HEAD فعلی شما را به نسخه مشخص شده متصل می‌نماید؛ عدد بعد از عبارت  HEAD~   مشخص می‌کند که ما می‌خواهیم به چند کامیت قبل‌تر باز گردیم؛ در مثال بالا، ما می‌خواهیم نسخه یکی قبل تر از نسخه کنونی برگردیم و به عبارت دیگر آخرین کامیت خود را خنثی کنیم.

با استفاده از پرچم  --soft  ما به گیت می‌گوییم که فقط کامیت را حذف کند و با تغییراتی که بر روی فایل‌ها انجام داده‌ایم کاری نداشته باشد!
 

این مطلب نیز ممکن است برای شما مفید باشد: نحوه تغییر پیام Git Commit


اگر نمی‌خواهید این تغییراتی که بر روی فایل‌ها اعمال کرده‌اید را نگهداری کنید، از پرچم  --hard  استفاده کنید. دقت کنید که این دستور را تنها زمانی اجرا نمایید که مطمئن هستید دیگر نیازی به این تغییرات ندارید؛ زیرا تمامی تغییراتی که بر روی فایل‌ها اعمال کرده‌اید، از بین خواهد رفت!

git reset --hard HEAD~1

 

بازنشانی چندین کامیت

همین تکنیک به شما امکان را می‌دهد به هر نسخه قبلی از کامیتی که می‌خواهید نیز برگردید؛ کافیست کد کامیت مورد‌نظر خود را وارد کنید؛

git reset --hard 0ad5a7a6

همیشه به خاطر داشته باشید که دستور reset، تمام کامیت‌هایی که بعد از کامیتی که به آن بازگشتید می‌آید را بازنشانی (حذف) می‌نماید:

منبع:

How can I undo the last commit?