Categories
Source Control

របៀបប្រើប្រាស់ Command Lines ជាមួយ Git

របៀបប្រើប្រាស់Command Line ជាមួយ Git

User Guide Version 1.0

១.​សេចក្តីផ្តើម

– ហេតុអ្វីបានជាយើងចាំបាច់ត្រូវប្រើប្រាស់ Git?

ក្នុងការប្រើប្រាស់ Git វាមានសារៈសំខាន់ដើម្បីអោយអ្នកDeveloper ធ្វើការ Push និង Pull Projects ចូល/ចេញទៅក្នុង Server។ វាមានលក្ខណៈងាយស្រួលក្នុងការគ្រប់គ្រងកូដ បែងចែកការងារ (Tasks) ទៅអោយក្រុម (Team) និងតាមដានរាល់សកម្មភាពរបស់ក្រុមនិមួយៗបានយ៉ាងមានប្រសិទ្ធភាព។

ទន្ទឹមនឹងនេះដែរ ខ្ញុំបាទក៏ទើបតែចាប់ផ្តើមប្រើប្រាស់នូវ Git សម្រាប់ធ្វើការទៅលើ project ដែរ។ ដូចនេះរាល់ការបកស្រាយឬក៏ពន្យល់មានការខុសឆ្គងឬក៏ពាក្យបច្ចេកទេសមិនសូវត្រឹមត្រូវ សូមជួយណែនាំក៏ដូចជាកែតម្រូវរាល់ពាក្យពេចន៏ដែលបានបកស្រាយជូនផងដែរ។ នេះគ្រាន់តែជាអ្វីដែរខ្ញុំបានសិក្សាពីលោកគ្រូ ក៏ដូចជាមិត្តភក្តិ និងការសិក្សាស្រាវជ្រាវដោយខ្លួនឯង ដើម្បីចងក្រងទុកជាឯកសារមើលនៅពេលដែលយើងភ្លេច។

២.​តម្រូវការ

ដើម្បីប្រើប្រាស់ Git បាន យើងចាំបាច់ត្រូវមាន៖

  • Tool មួយឈ្មោះថា Git ដោយចូលទៅdownload នៅក្នុង Website
    • https://gitforwindows.org/
    • បន្ទាប់មកធ្វើការ Setup វា
    • ចំណាំ៖ ចំពោះអ្នកប្រើប្រាស់ Window តែប៉ុណ្ណោះទើបតម្លើងវា តែសម្រាប៉អ្នកដែលប្រើប្រាស់ Mac គឺមិនចាំបាច់តម្លើងវាឡើយ
  • ត្រូវRegister Account នៅក្នុង GitLab
    • https://gitlab.com/
    • ឧបមាថាយើងបាន Register GitLap រួចរាល់ហើយ ដើម្បីយល់កាន់តែច្បាស់ពីរបៀបប្រើប្រាស់ GitLap សូមចូលទៅមើល User Guide ដែលបាន share មុនៗ

៣.​ការណែនាំពី Repository

បន្ទាប់ពីយើងបានតម្លើងនូវ Git ចូលទៅក្នុងម៉ាស៊ីនកុំព្យូទ័រដោយជោគជ័យហើយ ឥលូវនេះខ្ញុំសូមបង្ហាញពីរបៀបប្រើប្រាស់ Git command line មួយចំនួនដែលយើងប្រើប្រាស់ញឹកញាប់ក្នុងការធ្វើការជាមួយ Local និង Server។

  • Git Repository យើងបែងចែកចេញជាពីរគឺ Local Repository និង Server Repository
    • Local Repository: សំដៅទៅលើ Repository ដែលយើងកំពុងតែធ្វើការនៅលើម៉ាស៊ីនកុំព្យូទ័រផ្ទាល់តែម្តង។ មានន័យថា រាល់ការ add, modified, delete, commit, បង្កើត Branch ផ្សេងៗ គឺធ្វើលើម៉ាស៊ីនយើងផ្ទាល់។
    • Server Repository: សំដៅទៅលើ Repository ដែលយើងប្រើប្រាស់ធ្វើការនៅលើ Server (GitLab)។

៤.​របៀបប្រើប្រាស់ Local Repository

  • ជំហានទី១៖ ដំបូងយើងត្រូវចូលទៅកាន់​ Git Bash ដោយ
    • Right Click លើ Drive ណាមួយក្នុងកុំព្យូទ័ររបស់យើង
    • បង្កើតនូវ directory មួយឈ្មោះថា “git_demo” ដោយវាយcommand ក្នុង cmd “md git_demo”
    • Right Click លើ folder “git_demo”
    • យក Git Bash Here
    • វានឹងចេញផ្ទាំងដូចរូប
    • បន្ទាប់មកសូមវាយ command : git inti (ដើម្បី initialize git command line)
    • ក្នុងនឹងដែរ យើងកំពុងឈរលើ Branch master
    • សូមបង្កើតfile មួយឈ្មោះថា “test1.txt” ដោយប្រើប្រាស់ command
      • vim : សម្រាប់បង្កើត file រួចយើងអាចសរសេរ content ផ្សេងៗនៅលើ Terminal ផ្ទាល់តែម្តង ដោយមិនចាំបាច់ទៅបើក file ដើម្បីសរសេរ
      • touch: ប្រើសម្រាប់តែបង្កើតfile តែប៉ុណ្ណោះ ដើម្បីអាចសរសេរ content បានលុះត្រាតែយើងចូលទៅបើកវា ហើយទើបអាចធ្វើការសរសេរបាន។
    • $ vim test1.txt បន្ទាប់មកសូមសរសេរ text ចូល
    • ដើម្បីអាចសរសេរបាន យើងត្រូវចុចអក្សរ “s” លើ Keyboard
    • ដើម្បីបញ្ឈប់ការសរសេរនូវ Content យើងត្រូវចុច “Esc” លើ Keyboard រួចវាយអក្សរ: “:x!”
    • ឆែកមើល files របស់យើង ថាតើបាន add / commit ហើយរឺនៅ ដោយប្រើប្រាស់ command “git status”
    • ក្នុងនេះយើងឃើញមានfileមួយមានពណ៍ក្រហម ជាមួយពាក្យថា Untracked files មានន័យថា file របស់យើងមិនទាន់បាន add ចូលទៅក្នុង repository នៅឡើយទេ។
    • ដើម្បី add file ទាំងនោះចូល យើងត្រូវប្រើ command
      • $ git add . បានន័យថា យើងចង់ add files ទាំងអស់ ចូលទៅក្នុង repository
      • $ git add test1.txt បានន័យថា យើងadd តែfile test1.txt ចូលតែប៉ុណ្ណោះ
      • សូមឆែកមើល status របស់វា
      • ពណ៍បៃតងមានន័យថា files យើងមិនទាន់បាន commit នៅឡើយទេ
      • បន្ទាប់ពី add រួចយើងត្រូវ commit វា ដោយប្រើ command git commit –m “message”
      • សូមឆែកមើល status របស់វា
      • មានន័យថា រាល់ការងាររបស់យើងត្រូវបាន add / commit រួចរាល់ចប់សព្វគ្រប់នៅក្នុង local repository
    • ជំហ៊ានទី២៖ របៀបបង្កើត Branch
      • ឆែកមើល Status របស់ branch
      • $ git branch
      • ឥលូវយើងមានតែ branch តែមួយគត់គឺ master
      • ដើម្បីបង្កើត branch យើងត្រូវ វាយនូវ command: “git branch branch1”
      • ឆែកមើល Status របស់ branch
      • ឥលូវយើងមានតែ branch ពីរគឺ master និង branch1
      • ដើម្បី switch branch យើងត្រូវវាយ command: “git checkout nameOfBranch”
      • ឥលូវយើងកំពុងឈរលើ branch1
      • សូមធ្វើការ List មើល files ក្នុង branch1 ដោយវាយ command: “ll”
      • ពេលនោះរាល់files ដែលមានក្នុង branch master ត្រូវមាននៅក្នុង branch1 ដូចគ្នា ពីព្រោះនៅពេលដែលយើងបង្កើត branch1ដំបូង គឺយើងឈរនៅលើ branch master ដូចនេះBranch master មានអី នាំអោយ branch1 មានដូចគ្នា
      • សូមធ្វើការបង្កើត files ចំនួន ២​ទៀតនៅក្នុង branch1
        • txt
        • txt
      • បន្ទាប់មកសូម git add . និង​ git commit –m “message”
      • រួច List មើល
      • សូមបង្កើត branch មួយទៀត ឈ្មោះថា “branch2” រួចបង្កើតនៅ files ចំនួន ២ទៀត គឺ
        • txt
        • txt
      • រួច List មើល
      • Switch ចូល branch1
      • ករណីដែលយើងចង់ធ្វើការ merge branch “branch1 និង branch2” បញ្ចូលគ្នា យើងត្រូវកំណត់ source និង destination repository៖
        • Source: branch2
        • Destination: branch1
      • ដើម្បី merge branch បាន យើងត្រូវឈរលើ destination branch
      • វាយ​Command “git merge sourceBranch
      • ដូចនេះយើងទទួលបាន branch1 ដែលមានfiles ដូចទៅនឹង branch2

៥.​របៀបប្រើប្រាស់ Server Repository

  • ជំហានទី១៖ ខ្ញុំបានបង្កើតនូវ Group មួយឈ្មោះថា group_demo ដែលក្នុង group ហ្នឹង មាន project ឈ្មោះថា project_demo
  • ជំហានទី២៖ ដើម្បីអាចអោយ Team ធ្វើការងាររួមគ្នាបាន យើងត្រូវ Clone project ចេញពី Server Repository សិន
    • Go to gitLab.com
    • Copy the url
    • Open Git Bash
    • វាយ command “git clone git@gitlab.com:group_demo/project_demo.git
    • ចូលទៅកាន់ folder “project_demo”
    • វាយ “cd project_demo”
    • សូមបង្កើតនូវ file មួយឈ្មោះថា txt ក្នុង Branch master
    • ដើម្បី push files ចូលទៅក្នុង server repository យើងត្រូវ វាយ command:
    • $ git push origin branch1 (ត្រង់ branch1 យើងអាចដាក់ឈ្មោះអីក៏បានដែរ)
    • ចំណាំ៖ ករណី Push ទៅវាមាន error
    • ដំណោះស្រាយ ត្រូវ
    • Generate key ដោយមិនមាន​ passphraseដោយវាយ command line: $ ssh-keygen -t rsa -C “ho.sysome@gmail.com” -b 4096
    • បន្ទាប់មកវាយ cat ~/.ssh/id_rsa.pub | clip
    • ចូលទៅ gitLab
    • Paste key ចូល​ (right click –> paste)
    • សូមធ្វើការ Push ម្តងទៀត
    • ចូលទៅមើលក្នុង GitLab
    • សូមចុច create merge request ជាការស្រេច

By sysomeho

Ho Sysome obtains B.S. degree in Computer Science from Phnom Penh Internation University (PPIU) in 2013 and currently studying Master of Science in IT (MSIT) at Asia Euro University (AEU). He worked as an IT Officer at Microfinance Institute and Bank in Phnom Penh. He is familar in programming language such as VB.NET, Java (Java2EE, Spring), Codeigniter, Laravel, mysql, sql server and so on. He enjoys sharing knowledges, learns from other, and develop himself.
Find him on Facebook: Spy Ro, Linkedin: Sysome HO.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.