منو سایت

  • خانه
  • وبلاگ
  • نحوه لغو “بازنشانی git” (بازیابی اطلاعات از دست رفته در “–hard” Reset)

نحوه لغو “بازنشانی git” (بازیابی اطلاعات از دست رفته در “–hard” Reset)

 تاریخ انتشار :
/
  وبلاگ
نحوه لغو "بازنشانی git" (بازیابی اطلاعات از دست رفته در "--hard" Reset)

برای لغو git reset دستوری که می توانید استفاده کنید git reflog برای بازگشت به حالت قبل از تنظیم مجدد.

به عنوان مثال، اگر دستور قبلی Git شما چیزی شبیه به این بود git reset –hard HEAD~1می توانید با اجرای دستور زیر را لغو کنید:

$ git reset [email protected]{1}

اگر قبلاً برخی از عملیات های دیگر را پس از دستور ناایمن انجام داده باشید، ممکن است دستور بالا صحیح نباشد. اما جای نگرانی نیست! حتماً پاسخ مفصل را بخوانید زیرا به شما می آموزد که دستور بالا چگونه کار می کند و چگونه تغییرات از دست رفته را در هر شرایطی برگردانید.

این راهنما به شما یاد می دهد که چگونه لغو کنید git reset دستورات با git reflog. مهمتر از آن، یاد می گیرید که چگونه گزارش مرجع git به طور خودکار تمام عملیات Git را ردیابی می کند و چگونه می توانید پروژه خود را به زمانی قبل از اجرای عملیات بازنشانی کنید.

لغو “بازنشانی git” با “git reflog”

Git به طور خودکار تمام دستورات Git را که اجرا می کنید ردیابی می کند. آنها در چیزی که a نامیده می شود ذخیره می شوند گزارش مرجع. در گزارش مرجع Git، می توانید اقدامات گذشته مانند commits، commits، resets، ادغام و موارد مشابه را بیابید. به یک معنا، گزارش مرجع کل تاریخچه پروژه را ذخیره می کند.

برای مشاهده رجیستری مرجع Git پروژه خود، اجرا کنید git reflog.

$ git reflog

گزارش ارجاع بسیار شبیه به گزارش تعامل شما کار می کند. هر عمل در گزارش مرجع دارای یک شناسه منحصر به فرد است که توسط آن می توانید به آن دسترسی داشته باشید. در این راهنما، به این اقدامات مجله مرجع به عنوان commit اشاره خواهیم کرد.

به عنوان مثال، در اینجا گزارش مرجع پروژه نمونه من است:

نحوه لغو "بازنشانی git" (بازیابی اطلاعات از دست رفته در "--hard" Reset)

در سمت چپ، ترکیب های زرد رنگ اعداد و کاراکترها، شناسه های commit commit های مجله مرجع هستند. را [email protected]{N} notation راه دیگری برای نشان دادن این اعمال ارائه می دهد.

اگر دستور git ناامن مانند بازنشانی سخت را اجرا کرده اید و می خواهید تغییرات از دست رفته خود را بازیابی کنید:

  1. git reflog را باز کنید.
  2. ورود مجدد فرمان بد (معمولاً جدیدترین) را مشاهده کنید.
  3. git reset را روی commit یا با استفاده از commit ID یا اجرا کنید [email protected]{N} به عنوان مرجع

یک مثال

در اینجا یک پروژه نمونه است که تحت کنترل نسخه Git است.

نحوه لغو "بازنشانی git" (بازیابی اطلاعات از دست رفته در "--hard" Reset)

و در اینجا تاریخچه تعهدات پروژه آمده است:

نحوه لغو "بازنشانی git" (بازیابی اطلاعات از دست رفته در "--hard" Reset)

حالا بیایید یک هارد ریست به commit اصلی انجام دهیم و تغییرات را روی ریموت انجام دهیم:

 $ git reset --hard HEAD~8
HEAD is now at 56d211b Initial commit

اجازه دهید این تغییرات را روی کنترل از راه دور نیز اعمال کنیم:

 $ git push --force-with-lease
Total 0 (delta 0), reused 0 (delta 0)
To https://github.com/artturijalli/exampleProject.git
 + 21c6c50...56d211b main -> main (forced update)

اکنون همه فایل ها و تغییرات هم به صورت محلی و هم از راه دور حذف شده اند.

در کمال تعجب، هنوز راهی برای بازیابی فایل ها و برگرداندن پروژه به حالت قبل از دستور خطرناک وجود دارد.

بیایید گزارش مرجع را باز کنیم:

$ git reflog

با این کار تاریخچه عملیات Git باز می شود.

به اولین عملیات در گزارش توجه کنید:

نحوه لغو "بازنشانی git" (بازیابی اطلاعات از دست رفته در "--hard" Reset)

این commit دوباره ثبت نام فرمان بازنشانی سختی است که به طور تصادفی اجرا کردید.

برای خنثی سازی دستور بد، به یک عملیات قبلی بازنشانی کنید [email protected]{1}.

$ git reset --hard [email protected]{1}

اکنون پروژه شما به حالت قبل از شروع شما برگردانده شده است git reset – سخت دستور به commit اصلی با استفاده از آن می توانید این را بررسی کنید git log:

نحوه لغو "بازنشانی git" (بازیابی اطلاعات از دست رفته در "--hard" Reset)

و برای به‌روزرسانی مخزن از راه دور به حالت قبلی، اکنون می‌توانید این تغییرات را روی کنترل از راه دور اعمال کنید:

$ git push --force-with-lease

خلاصه

امروز یاد گرفتید که چگونه یک را لغو کنید git reset فرمان

Take home Git تمام عملیاتی را که به صورت خودکار انجام می دهید را پیگیری می کند. اینها شامل بررسی، تنظیم مجدد، تعهد و موارد مشابه است.

اگر تعهد خطرناکی را شروع کردید و می‌خواهید آن را لغو کنید، می‌توانید عملیات را در آن جستجو کنید git reflog. هنگامی که commit reflog دستور بد خود را پیدا کردید، می توانید commit قبلی را بازنشانی کنید تا به حالتی که پروژه قبلا در آن بوده است برگردید.

با تشکر برای خواندن. کد نویسی مبارک!

همچنین بخوانید

چگونه یک Git Commit را لغو کنیم