Version Control System

Version Control System Version Control System ရဲ့ သဘော တရားကတော့ ရှင်းပါတယ် ကျနော် တို့ရေးတဲ့ Code တွေကို Database fileတွေမှာ Backup သိမ်းထားပေးပြီး တခုခုလွဲလိုပြန်လိုချင်တဲ့အခါ ပြန်ခေါ် လို့ရတာပေါ့။ Version Control System ကို Source Control System လို့လဲ‌ေခါ်ကြပါတယ်။ #Git Git ကတော့ Open Source VCS ဖြစ်ပါတယ်။ VCS ရဲ့ကောင်းကြိုးတွေကတော့ file changes history အားလုံးကို အမြဲ record ယူထားနိုင်ခြင်း၊ Feature တေွ branch တွေ ခွဲလို့ရမယ် ပြန် merge လို့ပေါင်းလို့ရမယ် team နဲ့အလုပ်လုပ်တဲ့အခါ မှာလဲ ပိုစနစ်တကျ ပိုလျှင်မြန်စေတာပေါ့။Trace လိုက်လို့လဲလွယ်စေပါတယ်။Code အပြောင်းလဲတိုင်း recordလုပ်ထားတဲ့အတွက် ဘယ်နေရာကစပြီး error တက်တယ်ကအစ သိနိုင်တော့ ပိုလျင်မြန်ပြင်လို့ရတာပေါ့။ gitlab, github, gitbucket,SourceForge စတဲ့ open sourceရော paid vcs ပါမျိုးမျိုးရှိကြပါတယ်။ ဒါအပြင် ကိုယ် ပိုင် server နဲ့ inhouse personal VCSကိုလဲ ကိုယ်တိုင် ဖန်တီးလို့ရပါသေးတယ်။ git အတွက် client side softwareတွေလဲရှိပါတယ်. source tree,GitKraken, Gitup စတဲ့အမျိုး မျိုး UIနဲ့ သုံးလို့ရတာတေွများကြီးရှိပါတယ်။ command line နဲလဲသုံးလို့ရပါတယ်။git အကြောင်းလေးနည်းနည်း သွားရအောင် #git repository Git repository ဆိုတာ ရေးထားတဲ့ code တွေ backup ထားတဲ့နေရာပေါ။တခြားသူတွေကိုကိုရေးထားတွေ share လို့ရတယ် သူများစိကလေ့လာလို့ရတယ်။ open source project တွေ clone ယူပြီး ရေးလို့ရတယ်လေ့လာလို့ရတယ်ပေါ။ repo ထဲမှာ private ထားပြီးရေးလို့ရသလို။ open source တွေလဲလုပ်လို့ရသလိုpublicထားလို့ရပါတယ်။ team နဲ့ လဲ developerတွေ အတူတူရေးလို့ရတာပေါ့။ #git clone ဒီ git clone command ကတော့ project, repository တစ်ခုကို ကိုယ့်ဆက်ထဲကို cloneယူတဲ့အခါသုံးတာပါ။ git clone url_of_repository #git add . Git add ကတော့ ကိုရေးထားတဲ့ code ကို commit တင်ဖို့အတွက် ရွေးတာပေါ့ တစ် file ချင်း git add file_name သုံးလို့ရသလို git add . နဲ့ အားလုံးကိုထည့်လို့လဲရတာပေါ့။ #git commit Git commit ကတော့ git repository ထဲကိုတင် ဖို့အတွက် ဘာအကြောင်းအရာတင်လဲဆိုတာထည့်ရေးတာပေါ့ #git push Git push ကတော့ ရေးထားတဲ့ codeနဲ့ commit ကို repository ထဲတင်တာပေါ့။ #git branch Feature တစ်ခုအတွက် issueအတွက် ခွဲပြီး ရေးဖို့လိုပါတယ် အဲ့အခါ git branch ကိုသုံးပြီး login feature branch, search branch စတာတွေ ခွဲပြီးရေးတာမျိုပေါ့ ပြီးရင်ပြန်ပေါင်းတာပေါ။ လူများတဲ့လုပ်တဲ့အခါ ကိုယ့် git branch က update မဖြစ်မှာ၊ master branch နဲ့အရမ်းကွာသွားမှာသတိထားရပါတယ်။ Master branch ဆိုတာကတော့ production အတွက်ဖြစ်ဖြစ် codeတွေ feature တွေအားလုံးရဲ့ မူလပင်မနေရာပေါ။ dev branch, feature branches , backend ,frontend အစသဖြင့် အမျိုးမျိုး branch တွေခွဲကြတာပေါံ့။ #git merge Branch တွေခွဲပြီးရေးတဲ့အခါ master branch ကိုကို ပြန်ပေါင်းတဲ့အခါ mergeလုပ်တယ်လို့ခေါ်ပါတယ်၊git merge တဲ့အခါ တူတဲ့ နေရာမှာ ဝိုင်းပြင်ထားတာမျိုးရှိတဲ့အခါ conflict ဖြစ်ပါတယ်အဲ့ကျရှင်းပြီး mergeလုပ်ရတာပေါ့။ #git pull teamနဲ့ရေးတဲ့အခါ ကိုရေးနေတဲ့ branch ကို uptodate ဖြစ်ဖို့ git pullလုပ်ရပါတယ် အာမှတာ သူများတင်ထားတဲ့ branch အသစ်ဖြစ်ဖြစ် code အသစ်တွေ ကိုယ့် local repo မှာ updateဖြစ်နေမှာပေါ့။ Git အကြောင်းပြီးတော့VCS ရဲ့ Good Practice လေးတွေအကြောင်းသွားပါမယ်။ #VCS_Good_Pratices #Be Up to date VCSသုံးပြီဆိုရင် ကို teamထဲမှာ ကိုယ့် repoကို အမြဲ့ latest version ဖြစ်နေဖိုလိုပါတယ်။ ဘာကြော်င့လဲ ိုတော့ တခြားသူကကိုရေးမဲ့ branch ထဲ ကိုယ် အိပ်နေတုန်းရေးသွားပြီး commit တင်သွားတာမျိုလဲဖြစ်နိုင်တာမို့ပေါ။ ဒါကြောင့် အမြဲ pullရမှာပေါ့ ဘာမှစမရေးခင်ကိူ။ #Detail on Commit Commit တင်တဲ့အခါ ဘာ commit ဖြစ်ကြောင်းဘာတွေ ရေးထားကြောင်း စတာတွေအသေးစိတ်ရေးထားဖို့လိုပါတယ်ဒါမှာတာ တခြားသူက pullတဲ့ခါဘာမြန်းနာလည်လွယ်တာပေါ. #Review before commit Commit မတင်မိ staging ကိုစစ်ဖို့ကြည့်ဖို့ကိုအကြင့်လုပ်ရပါတယ်ဒါမှတာ မလိုအပ်တဲ့ codeတွေ ပါနေတာ coment space စတာတွေသတိထားမိမှာပါ။ ဟုတ်ပါပြီ Version Control System ဖြစ်တဲ့ git အကြောင်းလဲတီးမိခေါက်မိလောက်ပိထင်ပါတယ်။ ဒီလောက်သိပိဆိုစပြီးစမ်းကြည့်လို့ရပါပြီ။ git tutorial ကို ဒီ Sat Sun Weekendမှာ video လု်ပပေးပါမယ်အဲ့ခါ ဒီ article ဖတ်ပြီးပြီဆိုပို မြန်မြန်နားလည်ပြီး လက်တွေစမ်းကြတာပေါ့ အစကနေအဆုံးထိ။ page, youtube, telegram channel တို့ ကို subscribe လုပ်ထားပါဗျ။ Facebook မှာရော Telegramမှာပါ ဝင်ရောက်ဆွေးနွေးပေးကြပါဗျ။Facebook page ၊ telegram channel နဲ့ Youtube Channel ကို follow subscribe လုပ်သွားနိုင်ပါတယ်ဗျ။ Facebook - @callmedevbypeter Telegram - @callmedevbypeter Youtube - Call Me Dev by Peter သိချင်တဲ့အကြောင်းအရာရှိရင် comment မှာရေးသွားပါဗျ။ Thanks you ပါ။ #callmedevbypeter #git #version_control_system #web_development #vcs

blog

Version Control System

Version Control System Version Control System ရဲ့ သဘော တရားကတော့ ရှင်းပါတယ် ကျနော် တို့ရေးတဲ့ Code တွေကို Database fileတွေမှာ Backup သိမ်းထားပေးပြီး တခုခုလွဲလိုပြန်လိုချင်တဲ့အခါ ပြန်ခေါ် လို့ရတာပေါ့။ Version Control System ကို Source Control System လို့လဲ‌ေခါ်ကြပါတယ်။ #Git Git ကတော့ Open Source VCS ဖြစ်ပါတယ်။ VCS ရဲ့ကောင်းကြိုးတွေကတော့ file changes history အားလုံးကို အမြဲ record ယူထားနိုင်ခြင်း၊ Feature တေွ branch တွေ ခွဲလို့ရမယ် ပြန် merge လို့ပေါင်းလို့ရမယ် team နဲ့အလုပ်လုပ်တဲ့အခါ မှာလဲ ပိုစနစ်တကျ ပိုလျှင်မြန်စေတာပေါ့။Trace လိုက်လို့လဲလွယ်စေပါတယ်။Code အပြောင်းလဲတိုင်း recordလုပ်ထားတဲ့အတွက် ဘယ်နေရာကစပြီး error တက်တယ်ကအစ သိနိုင်တော့ ပိုလျင်မြန်ပြင်လို့ရတာပေါ့။ gitlab, github, gitbucket,SourceForge စတဲ့ open sourceရော paid vcs ပါမျိုးမျိုးရှိကြပါတယ်။ ဒါအပြင် ကိုယ် ပိုင် server နဲ့ inhouse personal VCSကိုလဲ ကိုယ်တိုင် ဖန်တီးလို့ရပါသေးတယ်။ git အတွက် client side softwareတွေလဲရှိပါတယ်. source tree,GitKraken, Gitup စတဲ့အမျိုး မျိုး UIနဲ့ သုံးလို့ရတာတေွများကြီးရှိပါတယ်။ command line နဲလဲသုံးလို့ရပါတယ်။git အကြောင်းလေးနည်းနည်း သွားရအောင် #git repository Git repository ဆိုတာ ရေးထားတဲ့ code တွေ backup ထားတဲ့နေရာပေါ။တခြားသူတွေကိုကိုရေးထားတွေ share လို့ရတယ် သူများစိကလေ့လာလို့ရတယ်။ open source project တွေ clone ယူပြီး ရေးလို့ရတယ်လေ့လာလို့ရတယ်ပေါ။ repo ထဲမှာ private ထားပြီးရေးလို့ရသလို။ open source တွေလဲလုပ်လို့ရသလိုpublicထားလို့ရပါတယ်။ team နဲ့ လဲ developerတွေ အတူတူရေးလို့ရတာပေါ့။ #git clone ဒီ git clone command ကတော့ project, repository တစ်ခုကို ကိုယ့်ဆက်ထဲကို cloneယူတဲ့အခါသုံးတာပါ။ git clone url_of_repository #git add . Git add ကတော့ ကိုရေးထားတဲ့ code ကို commit တင်ဖို့အတွက် ရွေးတာပေါ့ တစ် file ချင်း git add file_name သုံးလို့ရသလို git add . နဲ့ အားလုံးကိုထည့်လို့လဲရတာပေါ့။ #git commit Git commit ကတော့ git repository ထဲကိုတင် ဖို့အတွက် ဘာအကြောင်းအရာတင်လဲဆိုတာထည့်ရေးတာပေါ့ #git push Git push ကတော့ ရေးထားတဲ့ codeနဲ့ commit ကို repository ထဲတင်တာပေါ့။ #git branch Feature တစ်ခုအတွက် issueအတွက် ခွဲပြီး ရေးဖို့လိုပါတယ် အဲ့အခါ git branch ကိုသုံးပြီး login feature branch, search branch စတာတွေ ခွဲပြီးရေးတာမျိုပေါ့ ပြီးရင်ပြန်ပေါင်းတာပေါ။ လူများတဲ့လုပ်တဲ့အခါ ကိုယ့် git branch က update မဖြစ်မှာ၊ master branch နဲ့အရမ်းကွာသွားမှာသတိထားရပါတယ်။ Master branch ဆိုတာကတော့ production အတွက်ဖြစ်ဖြစ် codeတွေ feature တွေအားလုံးရဲ့ မူလပင်မနေရာပေါ။ dev branch, feature branches , backend ,frontend အစသဖြင့် အမျိုးမျိုး branch တွေခွဲကြတာပေါံ့။ #git merge Branch တွေခွဲပြီးရေးတဲ့အခါ master branch ကိုကို ပြန်ပေါင်းတဲ့အခါ mergeလုပ်တယ်လို့ခေါ်ပါတယ်၊git merge တဲ့အခါ တူတဲ့ နေရာမှာ ဝိုင်းပြင်ထားတာမျိုးရှိတဲ့အခါ conflict ဖြစ်ပါတယ်အဲ့ကျရှင်းပြီး mergeလုပ်ရတာပေါ့။ #git pull teamနဲ့ရေးတဲ့အခါ ကိုရေးနေတဲ့ branch ကို uptodate ဖြစ်ဖို့ git pullလုပ်ရပါတယ် အာမှတာ သူများတင်ထားတဲ့ branch အသစ်ဖြစ်ဖြစ် code အသစ်တွေ ကိုယ့် local repo မှာ updateဖြစ်နေမှာပေါ့။ Git အကြောင်းပြီးတော့VCS ရဲ့ Good Practice လေးတွေအကြောင်းသွားပါမယ်။ #VCS_Good_Pratices #Be Up to date VCSသုံးပြီဆိုရင် ကို teamထဲမှာ ကိုယ့် repoကို အမြဲ့ latest version ဖြစ်နေဖိုလိုပါတယ်။ ဘာကြော်င့လဲ ိုတော့ တခြားသူကကိုရေးမဲ့ branch ထဲ ကိုယ် အိပ်နေတုန်းရေးသွားပြီး commit တင်သွားတာမျိုလဲဖြစ်နိုင်တာမို့ပေါ။ ဒါကြောင့် အမြဲ pullရမှာပေါ့ ဘာမှစမရေးခင်ကိူ။ #Detail on Commit Commit တင်တဲ့အခါ ဘာ commit ဖြစ်ကြောင်းဘာတွေ ရေးထားကြောင်း စတာတွေအသေးစိတ်ရေးထားဖို့လိုပါတယ်ဒါမှာတာ တခြားသူက pullတဲ့ခါဘာမြန်းနာလည်လွယ်တာပေါ. #Review before commit Commit မတင်မိ staging ကိုစစ်ဖို့ကြည့်ဖို့ကိုအကြင့်လုပ်ရပါတယ်ဒါမှတာ မလိုအပ်တဲ့ codeတွေ ပါနေတာ coment space စတာတွေသတိထားမိမှာပါ။ ဟုတ်ပါပြီ Version Control System ဖြစ်တဲ့ git အကြောင်းလဲတီးမိခေါက်မိလောက်ပိထင်ပါတယ်။ ဒီလောက်သိပိဆိုစပြီးစမ်းကြည့်လို့ရပါပြီ။ git tutorial ကို ဒီ Sat Sun Weekendမှာ video လု်ပပေးပါမယ်အဲ့ခါ ဒီ article ဖတ်ပြီးပြီဆိုပို မြန်မြန်နားလည်ပြီး လက်တွေစမ်းကြတာပေါ့ အစကနေအဆုံးထိ။ page, youtube, telegram channel တို့ ကို subscribe လုပ်ထားပါဗျ။ Facebook မှာရော Telegramမှာပါ ဝင်ရောက်ဆွေးနွေးပေးကြပါဗျ။Facebook page ၊ telegram channel နဲ့ Youtube Channel ကို follow subscribe လုပ်သွားနိုင်ပါတယ်ဗျ။ Facebook - @callmedevbypeter Telegram - @callmedevbypeter Youtube - Call Me Dev by Peter သိချင်တဲ့အကြောင်းအရာရှိရင် comment မှာရေးသွားပါဗျ။ Thanks you ပါ။ #callmedevbypeter #git #version_control_system #web_development #vcs

Call Me Dev by Peter Logo

CallMeDevbyPeter

Since 2022