ការគ្រប់គ្រងកំណែរ (Version Control) ដោយប្រើកម្មវិធីគ្រប់គ្រងកំណែរ Git និងសេវាកម្មគ្រប់គ្រងកំណែរ Github

ការគ្រប់គ្រង់កំណែរកូដ (ប្រភព៖ https://medium.com/gradeup/version-control-system-get-up-to-speed-with-git-ea25b5cb7329)

ការគ្រប់គ្រងកំណែរ (Version Control) ជាវិធីមួយដែលក្រុមអ្នកសរសេរកូដ​អាចគ្រប់គ្រង និងកំណត់សម្គាល់រាល់កូដដែលបានកែប្រែនៅក្នុងគម្រោងរបស់ពួកគេ។ ពេលប្រើកម្មវិធីគ្រប់គ្រង​កំណែរ គេអាចកំណត់សម្គាល់រាល់កំណែរប្រែទាំងអស់ មិនថាកូដ ហ្វាល់ ឫក៏អីផ្សេងៗទៀតផងដែរ។ មិនត្រឹមតែអាចកំណត់រាល់កំណែរប្រែទេ យើងអាចថែមទាំងប្ដូរពីកំណែរមួយទៅកំណែរមួយទៀតយ៉ាងងាយស្រួល។ ឧទាហរណ៍ថា យើងបានរក្សាកូដយើងជាកំណែរទី ១ កំណែរទី ២ និងកំណែរទី ៣ ហើយកំណែរទី ៣ នេះមានបញ្ហាមិនអាចដំណើរការបាន នោះយើងអាចត្រលប់ទៅកំណែរមុន កំណែរទី ១ ឫកំណែរទី ២ បានយ៉ាងងាយស្រួលដោយគ្រាន់តែប្រើ command តែមួយបានបាត់ទៅហើយ។

ជាទូទៅរាល់គម្រោង Software នីមួយៗ យើងច្រើនតែធ្វើការជាក្រុម។ ការគ្រប់គ្រងកំណែរក៏បានជួយឲ្យការធ្វើការងារជាក្រុមមានប្រសិទ្ធភាព និងដំណើរការរលូនបានផងដែរ។ កម្មវិធីគ្រប់គ្រងកំណែរដូចជា Git អនុញ្ញាត្តឲ្យយើងអាចរក្សាទុកកំណែរកូដក្នុង Repository មួយដែលអាចចែកជា Branch ផ្សេងៗបាន។ វាមានន័យថាបើសមាជិកនៃក្រុមមួយធ្វើការលើមុខងារទី ១ ហើយសមាជិកទី ២ ធ្វើការលើ Bugs គេអាចបែងចែកវាជា Branches ផ្សេងគ្នាបានដែលធ្វើឲ្យ​ការធ្វើការមិនជាន់គ្នាបាន ហើយគេអាចច្របាច់បញ្ចូលគ្នា (Merge) វិញបានពេលធ្វើរួចរាល់។ គេដឹងយ៉ាងច្បាស់ថាមានអីត្រូវបានកែប្រែខ្លះ ហើយកែដោយសមាជិករូបណា នៅពេលណា ហើយមានកូដណាដែលជាន់គ្នាខ្លះដែលធ្វើឲ្យសមាជិកនីមួយៗក្នុងក្រុមយល់ដឹងត្រូវគ្នា។

What is Version Control? by Github

VCS (Version Control System) ឫ កម្មវិធីគ្រប់គ្រងកំណែរ ជាកម្មវិធីសម្រាប់​ធ្វើការ​គ្រប់គ្រង​កំណែរនឹងឯង។ ខ្ញុំសុំមិននិយាយដល់​កម្មវិធីគ្រប់គ្រងកំណែរផ្សេងទៀតទេ​ដោយនិយាយ​តែពី Git តែម្ដង ព្រោះថា​សព្វ​ថ្ងៃ​នេះ​គ្មានអីល្អជាង Git ទេសម្រាប់កម្មវិធីគ្រប់គ្រងកំណែរ។

Git កើតចេញពីបញ្ហាដែលគេបានជួបប្រទះច្រើនសម្រាប់គម្រោង Software។ កាលនោះលោក Linus Torvalds ដែលជា​ស្ថាបនិក Linux ដែលគាត់បាន​កំពុងធ្វើការលើ Linux Kernal បានមិនពេញចិត្តនឹង​កម្មវិធីគ្រប់គ្រង​កំណែរ​ដែល​បាន​សម័យនោះ​ ហើយគាត់បានសម្រេចចិត្ត​ថា​គាត់ត្រូវ​សរសេរ​វាឡើងមក​ដោយ​ខ្លួនឯងដើម្បីឲ្យការ​គ្រប់គ្រងគម្រោង​សូហ្វវែរ៍មានភាពងាយស្រួល និងមាន​ប្រសិទ្ធិភាពជាងមុន។ គាត់បានបញ្ចេញ Git ឲ្យប្រើប្រាស់ដំបូងនៅឆ្នាំ ២០០៥ ហើយចាប់តាំងពីពេលនោះមកវាពេញនិយមយ៉ាងខ្លាំងសឹងតែរាល់ថ្ងៃគ្មានអីផ្សេង​ល្អជាងនេះទេ។

លក្ខណៈពិសេសរបស់ Git ៖
០. ល្បឿនលឿន និង​ជា​កម្មវិធី​គ្រប់​គ្រង​កំណែរ​ទំនើបចុងក្រោយ
១. កំណត់ត្រារាល់កំណែរប្រែក្នុងគម្រោង ពេលណា ដោយនណា អីខ្លះជាដើម
២. ជួយឲ្យការធ្វើការជាក្រុមមានប្រសិទ្ធភាព និងមានភាពងាយស្រួល
៣. ភាពងាយស្រួលក្នុងការតម្លើង និងក្នុងការប្រើប្រាស់ សម្រាប់អ្នកផ្សេងៗក្នុងគម្រោង​ដោយមាន​ទាំង Terminal Version និង Graphical Version
៤. អាចយកមកប្រើបានមិនត្រឹមសម្រាប់តែគម្រោង​សហ្វវែរ៍ទេ គម្រោងអីផ្សេងទៀតក៏អាចប្រើផងដែរ។

រាល់គម្រោង​ដែល​បាន​ប្រើ Git មិនទាមទារឲ្យយើងប្រើ Server អីទេគឺយើងអាច​ប្រើបែប Local Repository បាន។ តែបើយើងត្រូវធ្វើការជាក្រុម និងចែករំលេកកូដជាមួយសមាជិក​ក្រុម​ផ្សេងទៀត យើងអាចប្រើ Remote Repository បាន​ដោយប្រើសេវា​ដោយពពួក VCS Service Providers បានដូចជា Github និង​ Gitlab ជាដើមដែលភាគច្រើនឥតគិតថ្លៃ អាចដាក់ជាគម្រោង Private បាន និងមានភាពងាយស្រួលមែនទែន។

សូមកុំច្រឡំគ្នារវាង Version Control System (ដូចជា Git) និង​ពួក Version Control System​ Service Providers (ដូចជា Github និង Gitlab)។ ពីរនេះជារឿងផ្សេងគ្នាទេ​។

តំបូងយើងទៅដោនឡូដ Git ពី https://git-scm.com/downloads ទៅតាម​ប្រព័ន្ធ​ប្រតិបត្តិការរបស់យើង ហើយចុចតម្លើងដូចកម្មវិធីផ្សេងៗទៀតដែរ​តាម​ធម្មតា។ បើសិនជាយើងតម្លើងបាន​ត្រឹមត្រូវហើយ យើង​នឹង​អាច​ដំណើរការ​បញ្ជារខាងក្រោមនេះបាន ហើយយើង​នឹង​ឃើញ​ជំនាន់របស់ Git ដែលយើង​បាន​បញ្ចូល។

បន្ទាប់ពីនេះខ្ញុំតែងតែកំណត់ Git Auto-Completion និងកំណត់រូបរាង​របស់ Terminal ឲ្យមាន Color Highlight និងស្គាល់រាល់​ពាក្យ​​បញ្ជាររបស់​ Git ដូចវីដេអូខាងក្រោម៖

Setting Up Git Workspace on Windows
Setting Up Git Workspace on Mac

សម្រាប់ការប្រើបាស់ Git យើងត្រូវដឹងពី​ចំនុច​គន្លឹះរបស់ Git ដូចខាងក្រោម៖

0. Init Project ដំឡើង Git ក្នុងគម្រោង​
យើងចូលទៅកាន់ Directory ដែលផ្ទុកគម្រោងរបស់យើង យើងដំណើរការបញ្ជារខាងក្រោមនេះដើម្បីបើកប្រើ Git ក្នុងគម្រោងរបស់យើង៖

បន្ទាប់ពីដំណើរការបញ្ជារនេះហើយ យើង​នឹងមាន​ Directory មួយឈ្មោះថា .git ដែលផ្ទុកទិន្នន័យរបស់ Git ក្នុងគម្រោងដែលយើងបានដំឡើង។

.git directory

១. ត្រៀម Commit (Stage Files) និង Commit​
ការ Commit ជាការកត់ត្រាប្រវត្តិរបស់ File ដែលមាននៅក្នុងគម្រោងយើង។ រាល់ការ Commit ម្ដងៗ យើងត្រូវជ្រើសរើស File ដែលយើងចង់ Commit (Add to Stage) ជាមុនសិន ហើយនិងចុងក្រោយ Commit។

ឧទាហរណ៍ដូចខាងក្រោម៖

Add to Stage and Commit
git log

២. បង្កើត Repository លើ Github
យើងចូលទៅកាន់ https://github.com ហើយបើមិនទាន់មាន Account យើងអាចបង្កើត Account មកហើយចូល នោះយើងនឹងឃើញទំព័រដូចខាងក្រោមដែលយើងអាចបង្កើត Repository សម្រាប់គម្រោង​របស់​យើង​បានដោយចុច New នៅផ្នែក Repository ខាងឆ្វេងដៃ។

Home Screen @ Github

រួចបំពេញព័ត៌មានរបស់ Repository របស់យើង ដែលមានឈ្មោះ កំណត់ថាវាជាគម្រោងជាបើកចំហរ ឫជា Private ដូចរូបខាងក្រោមនេះ។

Repository Info

ពេលដែលយើងចុច Create repository ហើយ យើងនឹងបាន Repository មួយដូចខាងក្រោមនេះដែលយើងអាច​ភ្ជាប់ទៅនឹង Local Repository ដែលយើងបានបង្កើតពីខាងលើមក។

Empty Repository on Github

៣. ភ្ជាប់ Repository លើ Github ទៅ Local Repository យើង
បន្ទាប់ពីមាន Remote Repository នៅលើ Github ហើយយើងអាចភ្ជាប់វាទៅនឹង Local Repository ដែលយើងបានបង្កើតនៅជំហ៊ានទី ០ និង ១ បានដែលវា​អាច​ឲ្យ​យើង​រក្សា​ទុក​វានៅ Online ងាយស្រួលក្នុងការ​ចែករំលេកជាមួយសមាជិកក្រុមផ្សេងទៀត។

Collaboration using Git and Github

យើងត្រលប់មកក្នុង Terminal យើងវិញ ហើយយើងដំណើរការបញ្ជារដូចខាងក្រោម៖

Add remote and push to remote repository

បើសិនជាយើងមិនទាន់បាន login ទេ នោះវានឹងទារឲ្យ login សិនដើម្បីបញ្ជាក់ថាយើងមានសិទ្ធក្នុងការ push កូដចូលក្នុង repository បាន ហើយបើយើងមកមើលក្នុង Repository យើងនឹងទទួលបានដូចក្នុងរូបខាងក្រោមនូវរាល់កូដដែលយើងបាន Commit កន្លងមក។

First Commit Push

មកដល់ត្រឹមនេះ យើងបានប្រើ Git បែបមូលដ្ឋានគ្រឹះបានហើយ ហើយខ្ញុំសុំសរសេរត្រឹមនេះ​សិនក្នុងអត្ថបទនេះ នឹងប្រហែលជាមានអត្ថបទបន្ថែមទៀតនិយាយឲ្យបានជ្រៅជាងនេះ។

ជាទូទៅសម្រាប់ខ្ញុំផ្ទាល់ ខ្ញុំចូលចិត្តប្រើ Git នៅលើ Terminal ជាងប្រើ GUI។ តែបើយើងមិនចូលចិត្តប្រើ Terminal ទេ យើងក៏អាចប្រើ GUI បានដែរ ហើយវាក៏មានភាពងាយស្រួលដែរ។ GUI ដែលខ្ញុំធ្លាប់បានសាកហើយងាយស្រួលប្រើមាន Github Desktop និងមួយទៀត SourceTree។ សូមមើលវីដេអូខាងក្រោមសម្រាប់ការណែនាំពីវិធីប្រើវា៖

ប្រើ Git ដោយ GUI

ក្នុងអត្ថបទនេះយើងបានស្គាល់ពីអីទៅជាការគ្រប់គ្រងកំណែរ កម្មវិធីគ្រប់គ្រងកំណែរ និងសេវាកម្មកម្មវិធីគ្រប់គ្រងកំណែរ។ ហើយយើងក៏បានសាកល្បងប្រើវាបានបន្តិចដែរដោយបង្កើតជា Local Repository និង Remote Repository។ ខ្ញុំសង្ឃឹមថាអត្ថបទនេះអាចជួយសម្រួលការយល់ពីការគ្រប់គ្រងកំណែរនេះបានខ្លះ។ ខ្ញុំនឹងសរសេរបន្តទៀតដោយនិយាយដល់ការប្រើប្រាស់ស៊ីជម្រៅជាងនេះនៅអត្ថបទក្រោយៗទៀត។ ជួបគ្នាលើកក្រោយ!

Reference:
0. https://git-scm.com
1. https://medium.com/gradeup/version-control-system-get-up-to-speed-with-git-ea25b5cb7329
2. https://github.com
3. https://en.wikipedia.org/wiki/Git
4. https://git-scm.com/book/en/v2
5. http://www.intelliware.com/wp-content/uploads/Source-Control-Best-Practices-Web.pdf
6. https://www.atlassian.com/git/tutorials/what-is-version-control
7. https://vimeo.com/41027679

--

--

--

https://www.daseveny.com

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Davy Chhouk

Davy Chhouk

https://www.daseveny.com

More from Medium

Basic GIT Commands for Beginner's

VERSION CONTROL WITH GIT FOR BEGINNERS

Story Time: Conquering Hindi

Demystifying Version Control