git reflog؛ دکمه Undo واقعی Gitفرض کن یه Branch رو اشتباهی حذف کردی.
یا یه reset --hard زدی و بعد فهمیدی Commit مهمی رو از دست دادی.
اولین واکنش معمولاً:
> «تموم شد... 😐»
ولی شاید هنوز چیزی از دست نرفته باشه.
Git تاریخچهای از جابهجایی Referenceها نگه میداره که اسمش reflogـه.
کافیه بزنی:
git reflog
ممکنه چیزی شبیه این ببینی:
a81f32c HEAD@{0}: reset: moving to HEAD~2
7bc91de HEAD@{1}: commit: fix checkout
42de8aa HEAD@{2}: commit: add paymentحالا اگر Commit موردنظرت 42de8aa باشه، میتونی دوباره بهش برگردی:
git checkout 42de8aa
یا یک Branch جدید ازش بسازی:
git switch -c recovery 42de8aa
نکته مهم:
reflog برای بازیابی وضعیتهای محلی Git فوقالعادهست، اما یک Backup دائمی یا جایگزین Remote Repository نیست.
پس دفعه بعد که فکر کردی:
«Commitم برای همیشه پرید!»
قبل از ناامید شدن:
git reflog
رو امتحان کن. 😄