မတော်တဆဖြစ်ရင် ကယ်တင်ပေးမယ့် git reflog
git reflog ဆိုတာ ဘာလဲဆိုတာကို နားလည်ထားရုံနဲ့ လုံလောက်ပါတယ် ခင်ဗျာ။
git reflog ဆိုတာ ဘာလဲ?
git reflog(Reference Log) ဆိုတာ ကိုယ့်ရဲ့HEAD(လက်ရှိ ရောက်နေတဲ့ နေရာ) နဲ့ Branch တွေ အရင်က ဘယ်နေရာတွေ ရောက်ခဲ့ဖူးသလဲ ဆိုတဲ့ မှတ်တမ်းကို အသေးစိတ် သိမ်းထားပေးတာပါ။ ဒါက Repository ထဲက လှုပ်ရှားမှုတိုင်းရဲ့ ကိုယ်ပိုင် မှတ်တမ်းစာအုပ်ပဲ ဖြစ်ပါတယ်။
ဘာကြောင့် သုံးသင့်သလဲ?
- Branch ကို မတော်တဆ Reset လုပ်မိလို့ Commits တွေ
git logထဲကနေ ပျောက်သွားရင်တောင်၊reflogက အဲ့ဒီ Commits တွေ ဘယ်မှာရှိလဲ ဆိုတာကို သိနေပါတယ်။
ဥပမာ (Analogy):
လိုဏ်ဂူတွေ (Git Repository) ကို စူးစမ်းရှာဖွေနေတယ်လို့ မြင်ယောင်ကြည့်ပါ။
git logက စူးစမ်းပြီးသား လှိုဏ်ခေါင်းတွေရဲ့ တရားဝင် ဆွဲထားတဲ့ မြေပုံနဲ့ တူပါတယ်။git reflogကတော့ ကိုယ် လှည့်ခဲ့တဲ့ အကွေ့တိုင်း၊ ရောက်ခဲ့တဲ့ နေရာတိုင်းကို အသေးစိတ် မှတ်တမ်းတင်ပေးထားတဲ့ ကိုယ်ပိုင် ဒိုင်ယာရီ မှတ်တမ်းစာအုပ်နဲ့ တူပါတယ်။
ဘယ်လို အထောက်အကူ ပြုသလဲ? (အကြမ်းဖျင်း)
- မတော်တဆ
git reset --hardသုံးမိလို့ Commits တွေ “ပျောက်သွားပြီ” လို့ ထင်ရတဲ့အခါ၊git reflogကို ကြည့်လိုက်ရင် Reset မလုပ်ခင်က ရောက်ခဲ့တဲ့ Commit ရဲ့ Hash ကို ပြန်ရှာတွေ့နိုင်ပါတယ်။ - အဲ့ဒီ “ပျောက်ဆုံးသွားတဲ့” Commit Hash ကို သုံးပြီး Branch အသစ်တစ်ခု ပြန်ဖန်တီးကာ ကိုယ့်အလုပ်တွေကို အလွယ်တကူ ပြန်ယူနိုင်ပါတယ်။
(ဥပမာ -
git branch recovered-work <lost-commit-hash>) - အခုချိန်မှာ reflog commands တွေကို ကျွမ်းကျင်နေဖို့ မလိုသေးပါဘူး။ ကိုယ့် Local Repository အတွက် အစွမ်းထက်တဲ့ အသက်ကယ် Tool တစ်ခု ရှိတယ်ဆိုတာ သိထားရင် အဆင်ပြေပါပြီ ခင်ဗျာ။