29/11/2020
ဒီနေ့ နည်းပညာ ရွာသူရွာသားတွေအတွက် ကျွန်တော်တို့ sharing လုပ်ပေးချင်တာက Git အကြောင်းလေးဘဲ ဖြစ်ပါတယ်။ ကျွန်တော်တို့ IT နယ်ပယ်မှာ Git, GitHub ဆိုပြီး ပြောနေကြတာကို ကြားဖူးကြမယ် ထင်ပါတယ်။ အဲတော့ ကျွန်တော်တို့ Git နဲ့ GitHub အကြောင်းကို သေချာလေးနားလည်သွား အောင် ဖတ်ကြည့်လိုက်ရအောင်😄
အရေးကြီးဆုံးအနေနဲ့ မှတ်ထားရမှာက Git နဲ့ GitHub က တူညီတဲ့အရာ မဟုတ်ပါဘူး။
ပထမဆုံးအနေနဲ့ git အကြောင်း မပြောခင် Version Control System’(အတိုကောက် VCS) အကြောင်း အရင်မိတ်ဆက်ချင်ပါတယ်။
VCS ဆိုတာ ကျွန်တော်တို့ ရေးလိုက်တဲ့ program, document, website တစ်ခုရဲ့ မတူညီတယ့် version အမျိုးမျိုးကို manage/control လုပ်ခြင်းကို ဆိုလိုခြင်းဖြစ်ပါတယ်။ ကဲဒီထက်ပိုနားလည်သွားအောင် ဆက်ဖတ်ကြည့်ရအောင်။
VCS အကြောင်း ကို ပိုနားလည်ဖို့ဆိုရင် ပထမဆုံးအနေနဲ့ ‘version’ ဆိုတဲ့ keyword လေးကိုအရင်သိဖို့လိုပါတယ်။
ဥပမာအနေနဲ့ -
Document
Hello World !
အထက်ပါ HTML program တစ်ခုကို ရေးလိုက်ပြီဆိုပါစို့။ အခုရေးလိုက်တာဟာ version တစ်ခုဖြစ်ပါတယ်။ ကိုယ်ရေးလိုက်တဲ့ program ဟာ မှားသွားလို့ ပဲဖြစ်ဖြစ် အသစ်ထပ်ရေးလိုက်ရင်ပဲဖြစ်ဖြစ် save လိုက်တာနဲ့ ပထမ version မဟုတ်တော့ဘဲ နောက်ထပ် version တစ်ခု အနေနဲ့ ယူဆရမှာဖြစ်ပါတယ်။ အကျဉ်းချုပ်အနေနဲ့ ကျွန်တော်တို့ program ကို edit, modify လုပ်ပြီး save နေတဲ့ ကာလပတ်လုံး program ရဲ့ version တွေဟာပြောင်းလဲနေမှာ ဖြစ်ပါတယ်။
ဟုတ်ပြီ ဒါဆို ကျွန်တော်တို့ VCS အကြောင်းလေး ဆက်လေ့လာကြည့်ရအောင်။
VCS ဟာ ကိုယ်ရေးလိုက်တဲ့ code ရဲ့ ပြောင်းလဲမှုတွေကို အမြဲ track လုပ်ပေးနေပါတယ်။ ကိုယ့်လုပ်ဖော်ကိုင်ဖက် developer အချင်းချင်း real time မှာ ပြင်တာတွေ ဖျက်တာတွေလုပ်လို့ရတယ်။ ကိုယ် testing လုပ်ဖို့ ပြင်လိုက်တဲ့ code မှားသွားတဲ့အခါ original file ကို မဆုံးရှုံးဘဲ ပြန်ယူလို့ရမယ်။ code ရဲ့ version အဟောင်းတွေကို ပြန်ယူလို့ရမယ်။
VSC ကို အမျိုးအစားကြီး ၃မျိုး ခွဲခြားလို့ရပါတယ်။ အဲ့ဒါတွေကတော့
1. Local Version Control System
2. Centralized Version Control System
3. Distributed Version Control System
တို့ဘဲ ဖြစ်ပါတယ်
1. Local Version Control System - LVCS ဟာဆိုရင် ကိုယ်ရဲ့ computer မှာပဲသုံးလို့ရပါတယ်။ တစ်နည်းအားဖြင့် မိမိတစ်ယောက်တည်းသာ သုံးလို့ရမှာ ဖြစ်ပါတယ်။
2. Centralized Version Control System - Centralized VCS ဟာဆိုရင်ဖြင့် Master Project File ကို Server တစ်ခု ဒါမှမဟုတ် Cloud Server တစ်ခုခုပေါ်မှာ သိမ်းထားပါတယ်။ အဲ့ဒီ Project ကို Developer တွေက ပေါင်းရေးကြတဲ့ အခါမှာ Master Project ကြီးတစ်ခုလုံးကို ဝင်ရေးလို့မရပါဘူး။ Administrator က သတ်မှတ်ပေးထားတဲ့ အပိုင်းလောက်ကိုပဲ ရေးခွင့်ရတာပါ။ Centralized VCS ရဲ့အားသာချက်ကတော့ project လုပ်ဆောင်နေတဲ့ developer တွေဟာ သူတို့လုပ်ဆောင်ရမယ့် အပိုင်းဘယ်လောက် ပြီးမြောက်ထားလဲဆိုတာ အခြေအနေတစ်ခုထိ တခြားသူတွေသိနိုင်ခြင်းဖြစ်ပါတယ်။
3. Distributed Version Control System - Distributed VCS ဟာဆိုရင် Local နဲ့ Centralized ကို ပေါင်းစပ်ထားတာလို့ အကြမ်းမျဉ်း ဆိုနိုင်ပါတယ်။ Distribute ဆိုတော့ မြန်မာလိုဆိုရင် ဖြန့်ဝေသည် ပေါ့။ အဲ့တာကြောင့်မို့လို့ အလုပ်လုပ်ကြမယ့် Project ကို သက်ဆိုင်ရာ Developer တိုင်းကို ဖြန့်ဝေပေးလိုက်ပါတယ်။ အဲ့တော့ သူတို့ရဲ့ ကိုယ်ပိုင်စက်တွေထဲမှာလဲ Master Project File ကြီးတစ်ခုလုံးကို ရသွားပါတယ်။ ဒီလိုနည်းနဲ့ ကိုယ့်ရဲ့ စက်က server၊ ကိုယ့်ရဲ့စက်က client ပဲ ဖြစ်လာပါတယ်။ ဒါကြောင့် Project ရဲ့ Backup File ဟာ စက်တိုင်းမှာ ရှိသွားပြီးတော့ File Sharing လုပ်ကြတဲ့ အချိန်မှာ peer-to-peer ပုံစံနဲ့ Share သွားပါတယ်။
VCS တွေဟာ နာမည်မျိုးစုံ ပေါ်ပေါက် ထုတ်လုပ်လာကြပါတယ်။ CVS, SVN, Mercurial, Fossil အစရှိသည်သဖြင့်ပေါ့။ အဲဒီအထဲမှာ Git ဆိုတာဟာလည်း တစ်ခုအပါအဝင်ဖြစ်ပါတယ်။
Git ကို တော့ 2005 ခုနှစ်မှာ Linux Torvalds ဆိုတဲ့ ပုဂ္ဂိုလ် က ဖန်တီးခဲ့ပါတယ်။ Git ဟာ ‘a free and open source distributed version control system’ တစ်ခုဖြစ်ပါတယ်။ ပြောရမယ်ဆိုရင် git ဟာ VCS ထဲက distributed VCS အမျိုးအစားဖြစ်ပါတယ်။ သူကတော့ VCS တွေထဲမှာမှ အအောင်မြင်ဆုံးနဲ့ လူသုံးအများဆုံးဘဲ ဖြစ်ပါတယ်။
Git က တော့ အခမဲ့ သုံးစွဲခွင့်ပြုထားတယ်။ Open Source ဖြစ်တဲ့အတွက် Source Code တွေကိုလဲ ကြိုက်သလို ပြင်ဆင်ခွင့်ပေးထားပါတယ်။
Git ကို အောက်ဖော်ပြပါ website မှာ သွားလေ့လာလို့ရပါတယ်။
https://git-scm.com/
Git အသုံးပြုချင်တယ်ဆိုရင် အဲ့ဒီ website မှာဝင်ပြီး မိမိ computer ရဲ့ OS ပေါ်မူတည်ပြီး free download လုပ်လို့ရပါတယ်။ beginner တစ်ယောက်အနေနဲ့ ဘယ်ကစသုံးမလဲ ကစပြီး အဲ website မှာ ဖော်ပြပေးထားပါတယ်
ဒါကတော့ git အကြောင်းဘဲ ဖြစ်ပါတယ်။
မနက်ဖြန်ရောက်ရင် တော့ GitHub အကြောင်းကိုထပ်တင်ပေးသွားပါမယ်။ 😃😃