What is GIT?


GIT ဆိုတာ version control system တစ္ခု သာျဖစ္ပါတယ္။GIT ဟာ အခုမွေပၚေပါက္ခဲ႔တာ မဟုတ္ပဘူး။ ၂၀၀၅ ခုနွစ္တည္းက linux kernel ကို ဖန္တီးေရးသားခဲ႔သူ Linus Torvalds ကတီထြင္ဖန္တီးေပးခဲ႔တာပါ။open source project တစ္ခုလည္းျဖစ္ပါတယ္။အျခား version control system ေတြနဲ႔ ႏိႈင္းစာရင္ performance ပိုေကာင္းတာကိုေတြ႔ရပါတယ္။
GIT သံုးျခင္းျဖင့္ application တစ္ခုကို team တစ္ခုအေနနဲ႔ ေရးရပိုလြယ္သြားပါတယ္။ application တစ္ခု ကို developer ေတြ၀ိုင္းေရးတဲ႔အခါ ဘံုသံုးတဲ႔ ဖိုင္ေတြအတြက္ developer အားလံုးက ၀င္ျပင္လိုၾကပါတယ္။ အဲဒီအခါ ျပႆနာတက္ပါျပီ။ ပထမတစ္ေယာက္ျပင္ေနတုန္း ေနာက္တစ္ေယာက္ ျပင္လို႔မရပါဘူး။
 ဥပမာ။ developer1 က config.php ကို ျပင္ေနတယ္ဆိုပါဆို႔။ အဲေနာက္ developer2 ကလည္း ဖြင့္ျပီးထပ္ျပင္ေနျပန္တယ္။ developer 1 က ျပင္ျပီတာနဲ႔ ဖုိင္ကို save ျပီး ပိတ္လိုက္ပါတယ္။ အဲဒီအခ်ိန္မွာ config.php မွာ developer1 ရဲ႕ ျပင္ဆင္ခ်က္မ်ားသာရွိေနပါတယ္။ အဲဒီျပင္ဆင္မႈေတြဟာ developer2 ဆီကို ေရာက္မသြားပါဘူး ။developer1 save မလုပ္ခင္တည္းက developer2 ကအဲဒီဖုိင္ကိုဖြင့္လိုက္တာေၾကာင့္ သူ႔ဆီမွာoriginal အတိုင္းပဲရွိေနပါလိမ္႔မယ္။ developer2 ကျပီးတဲ႔အခါ save လုပ္ပါတယ္ အဲဒီအခါ devloper2ရဲ႕ ျပင္ဆင္မႈမ်ားသာ အဖတ္တင္ျပီး developer1 ရဲ႕ ျပင္ဆင္ခ်က္မ်ားကေတာ႔ ေပ်ာက္သြားမွာပါ။
အဲလိုသာျဖစ္ေနမယ္ဆို team တစ္ခုကေန application တစ္ခုတည္းကို ၀င္ေရးဖို႔ခက္ေနပါျပီ။ ဒါဆိုရင္တစ္ေယာက္ျပီးမွတစ္ေယာက္ျပင္မယ္ဆိုရင္ျဖစ္ႏိုင္ပါသလား။
ဥပမာ develoepr ႏွစ္ေယာက္ဟာ မ်က္ႏွာခ်င္းဆိုင္ေရးေနမယ္ဆိုရင္ေတာ႔ျဖစ္ႏိုင္ပါတယ္။ developer ႏွစ္ေယာက္ထက္မ်ားလာမယ္ ဒါမွမဟုတ္ developer ေတြဟာ တစ္ေနရာဆီမွာရွိေနၾကမယ္ဆိုရင္ မျဖစ္ႏိုင္ပါဘူး။ မည္သူက ၀င္ေရးေနေၾကာင္း မည္သူ႔ကို အသိေပးဖို႔ဆိုတာ အရမ္းခက္ပါတယ္။
ဒါေၾကာင့္ version control system ေတြသံုးလာၾကပါတယ္။ ဘာေၾကာင့္ version control system လို႔ေခၚလဲဆိုေတာ႔ developer တစ္ေယာက္က သူ႔အပိုင္းျပီးတယ္ဆိုရင္ server ကို လွမ္းပို႔လႊတ္လို႔ရတယ္ အဲဒီအခါမွာ သူ႔ရဲ႕ ျပင္ဆင္ေရးသားခ်က္ေတြကို version တစ္ခုအေနနဲ႔ သိမ္းေပးထားတယ္။ အဲဒီေတာ႔ developer ေတြရဲ႕ ျပင္ဆင္ခ်က္ေတြကို အကန္႔အသတ္မရွိ သိမ္းဆည္းေပးထားတယ္။ အကယ္၍ developer တစ္ေယာက္ရဲ႕ ျပင္ဆင္ခ်က္ေတြဟာ quality မမွီဘူး မၾကိုက္ဘူးဆိုရင္ roll back ျပန္လုပ္ျပီး အရင္ version ကို ျပန္ရယူႏိုင္တယ္။
version control system မွာ centralized နဲ႔ distributed ဆိုျပီး ႏွစ္မ်ိဳးခြဲျခားပါ ေသးတယ္။ GIT ကေတာ႔ distributed system ျဖစ္ျပီး centralized ထက္ပိုျပီး လူၾကိဳက္မ်ားလာပါတယ္။ ကြာျခားခ်က္ေတြကိုေတာ႔ ေအာက္က video မွာ ၾကည္႔ပါ။
Previous
Next Post »

Thorium School

Thorium School
Be professional with us