ကျနော်နှင့် GitFlow (ဒုတိယပိုင်း) rebase

Kevin Kyaw
newborn.ninja
Published in
3 min readMay 10, 2020

မနေ့က squash နဲ့ cherry-pick အကြောင်း အကြမ်းဖျင်း ရှင်းပြီးပြီမို့ နောက်တစ်ပတ်ကြရင် tutorial လေးတစ်ခု လုပ်ပေးပါမယ်။ Saturday နဲ့ Sunday မှာ အနည်းဆုံး Topic ၂ ခုရအောင် ကြိုးစားရေးပေးပါမယ်။

အခုတော့ rebase အကြောင်း ဆက်ကြည့်ရအောင်။ ကျနော် ထပ်စဥ်းစားမိတာက Topic တစ်ခုချင်းစီး သေချာ ရှင်းပြပေးတာ ကောင်းမယ်ထင်လို့ အခုကစပြီး rebase ကို သေချာနားလည်အောင် ရှင်းပြပေးထားပါတယ်။

rebase ဘာလဲဘယ်လဲ

အောက်ကပုံလေးကို ကြည့်ကြည့်ပါ။

ကျနော့်မှာ master, develop, kevin-feature-01-add-more-message, kevin-feature-02-add-login-page ဆိုပြီး branch 4 ခုရှိနေပါတယ်။

kevin-feature-01-add-more-messagebranch က develop branch က တိုက်ရိုက်ခွဲထုတ်ထားပြီး kevin-feature-02-add-more-message ကလည်း develop ကနေပဲယူထားတာပါ။

ဆိုကြပါဆို့ 01 ရော 02 ရော develop နဲ့ပြန် merge လုပ်ဖို့ ready မဖြစ်သေးဘူး။ ဒါပေမဲ့ လက်ရှိ 01 branch ကို 02 branch ရှေ့ရောက်ပြီး 02 branch က code update တွေလဲ ကိုယ့်စီမှာ ရှိနေစေချင်တယ်ဆို rebase လုပ်ရပါမယ်။ နောက်နည်းက 01 ကို 02 နဲ့ merge လုပ်။ ပြီးမှ 02 branch ကထပ်ပြီးခွဲထုတ်။ မရဘူးလား လို့မေးစရာရှိပါတယ်။ ရတာပေ့ါ။ ဒါပေမဲ့ flow ကြီးက ရှုပ်ပြီး နောက်တစ်ကြိမ် ပြန်ပြီး အရင် Topic ကလို cherry-pick လုပ်မယ်ဆို ခေါင်းစားပါမယ်။ rebase လုပ်ကြည့်ရအောင်။

branch 01 မှာ index.phpနဲ့ profile.phpfile ၂ ခုရှိနေပါတယ်။ branch 02 မှာတော့ login.php ဆိုတဲ့ 1 file ပဲရှိပါတယ်။

Command က git rebase *your_target_branch* ကိုယ်က လက်ရှိ ကိုယ့်ရဲ့ develop လုပ်နေတဲ့ branch မှာရှိနေရပါမယ်။ လက်ရှိကျနော် branch က kevin-feature-01-add-more-message မှာ active ဖြစ်နေရပြီး rebase လုပ်ချင်တာက kevin-feature-02-add-login-page အပေါ်ကိုပါ။ အသေချာဆုံး command က git rebase kevin-feature-02-add-login-page

rebase လုပ်ပြီးတဲ့ result ကိုကြည့်ကြည့်ပါ။

kevin-feature-01-add-more-message သည် 02 အပေါ်ကို ရောက်သွားပြီး 02 update code login.php လည်း 02 branch ထဲရောက်သွားပါပြီ။ ဒီလိုဆို ကျနော်တို့ one line straight ရအောင် ဘယ်လိုလုပ်လဲ အကြမ်းနားလည်သွာလောက်ပြီလို့ ယူဆပါတယ်။

rebase အစား ကျနော် ပြောပြခဲ့သလို 01 branch ကို 02 branch နဲ့ merge လုပ်။ပြီးမှ 02 branch က ထပ်ပြီး branch အသစ်ခွဲသလို လုပ်ကြရအောင်။ ကျနော် အခု 01 branch ထဲမှာ dashboard.php ဆိုတဲ့ file အသစ်ထည့်လိုက်ပါပြီ။

နောက်ပြီးရင် 02 branch မှာလည်း faq.php ဆိုပြီး ထပ်ထည့်လိုက်ပါပြီ

လိုချင်တာက 01 branch ထဲကို 02 branch ထဲက faq.php လိုချင်ပြီး 02 branch ရှေ့ရောက်ချင်တာ။ လက်ရှ 01 branch ထဲမှာ faq.php လုံဝမရှိနေပါဘူး။ လက်ရှိ ကျနော် 01 branch မှာ active ဖြစ်နေရပါမယ်။ Command က git merge kevin-feature-02-add-login-page. merge လုပ်ပြီးလို့ faq.php file 01 branch ထဲရောက်သွားပါပြီ။

ဒါဆို Git tree view ကိုကြည့်ကြည့်ပါ။ ရှုပ်သွားပါပြီး။ ၁ ခု ၂ ခုဆို မသိသာပေမဲ့ ၄၊၅ ရောက်ဒီလိုမျိုးခွဲရေးပြီဆို အဲ့သလို line တွေများလာရင် ကြည့်ရခက်နေပါပြီ။ By the way, ခုန ကျနော် rebase လုပ်ပြီး push မလုပ်မိထားပါဘူး။ အဲ့ဒါကြောင့် အမှားနည်းနည်းပါသွားပါတယ်။ အမှန်က rebase လုပ်ပြီးတာနဲ့ remote အတွက်ပါ။ update ဖြစ်အောင် push လုပ်ရပါမယ်။

အခု 01 branch ကနေ ထပ်ခွဲပြီဆို line တွေထပ်လာပါပြီ။ အခုလောက်ဆို rebase အကြောင်း အတော်နားလည်ပြီလို့ ယူဆပါတယ်။ နောက်တစ်ပတ်မှာ ဘာရေးရမလဲစဥ်းစားပြီး နောက်တစ်ခုတော့ ရေးပေးပါမယ်။ Javascript နဲ့ implement လုပ်ထားတဲ့ message တွေအတွက်လည်း localisation Tutorial လေးရေးပေးချင်သေးတယ်။

Stay tune

အရင် part 1 ကို မသိလိုက်ဘူးဆိုရင်။ ဒီမှာ ဖတ်ကြည့်ပါ။

အခု tutorial လေးရဲ့ github repo ပါ။

--

--