Skip to content
GitHub

မတော်တဆဖြစ်ရင် ကယ်တင်ပေးမယ့် 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 တစ်ခု ရှိတယ်ဆိုတာ သိထားရင် အဆင်ပြေပါပြီ ခင်ဗျာ။