Discarding Local Changes
خلاصه: فایل یا فایلها یا هرچیزی (period) رو که در working directory حذف کن (آخرین تغییراتِ تویِ stage رو باهاش جایگزین کن)
git restore .
اگر هم فایلِ موردنظر ردیابینشده و در stage یا commit نیستش باید از دستورِ زیر با آپشنهایِ f و d استفاده کنیم. بدون این آپشنها این دستور به دلیل امنیتی اجرا نمیشه.
git clean -fd
مواقعی هست که ی سری کد در مسیر کاریمون وجود داره که میخوایم بندازیمشون دور. بیاین بگیم ی سری تغییرات انجام دادیم همه چیز رو پاک کنیم و از ابتدا شروع کنیم. میتونیم تغییرات محلی رو با دستور restore پاک کنیم اینجای سری تغییرات محلی در file1.js داریم برای پاک کردن این تغییرات مینویسیم
M file1.js
?? file2.js
git restore file1.js
زمانی که این دستور رو اجرا کنیم گیت نسخهی این فایل رو که در محیطِ بعدی که همون محیطِ staging area هست رو برمیداره و در مسیر کاریمون کُپیش میکنه همچنین میتونیم از period یا نقطه هم استفاده کنیم و این تمامی تغییرات محلی رو حذف میکنه.
git restore .
حال بیاین یک status خلاصه دیگه اجرا کنیم.
?? file2.js
اما File2 همچنان اینجاست دلیلش چیه؟ خُب، این یک فایل جدید ردیابینشدهست که گیت هنوز این فایل رو ردیابی نکرده پس زمانی که به گیت گفتم تا این فایل رو Restore کنه نمیدونه که نسخه قبلی این فایل رو از کجا بیاره. در محیط stage یا در ریپومون نیست. برای حذف تمامی این فایلهای ردیابینشده باید بنویسیم:
git clean
به صورت پیشفرض دستورِ بالا خطایی رو صادر خواهد کرد. اساساً گیت داره میگه که هِی این یک عمل خطرناکه. اگر تصادفاً این فایل های ردیابینشده رو پاک کنین هیچ راهی برای بازیابیشون نیست. برای این که چنین خطایی رو نبینیم از آپشنهایِ d (اشاره به directory) و f (اشاره به force) استفاده میکنیم.
git clean -fd