แบ่งปันสิ่งทีได้จากการเข้าร่วม อบรมคอร์สเรียน Source Code Management ด้วย Git

Sharing is caring!

หลังจากที่ไม่ได้อัพเดทเนื้อหาเพิ่มมานานมาก

และเมื่อช่วงวันหยุดสุดสัปดาห์ที่ผ่านมาได้เข้าร่วมอบรมคอร์สเรียน Source Code Management ด้วย Git ที่ SPRINT3R [n.] (ซพรินเทอร์) ซึ่งบอกได้คำเดียวว่าคุ้มมากจริงๆ มันก็คุ้มตั้งแต่ได้เข้าไปเรียนตั้งแต่วันแรกแล้ว เรียนฟรี อาหารฟรี สอนดีเป็นกันเอง TA เยอะไม่เข้าใจติดปัญหาอะไรถามได้ตลอดเพราะ TA จะเข้ามาประกบติดตัวต่อตัวช่วยเหลือจนกว่าเราจะเข้าใจ หรือแม้แต่ติดปัญหาเรื่อง ใด ๆ ก็จะไปหาคำตอบให้จนได้ สำหรับการเรียนที่ SPRINT3R [n.] (ซพรินเทอร์) นี้บอกได้คำเดียวว่าการได้เข้ามาเรียนคุ้มทุกคอร์สครับ คอร์สเรียนเขามีคุณภาพจริง ๆ

คอร์สเรียน   Source Code Management ด้วย Git (ระยะเวลา 2 วัน ช่วงวันเสาร์ที่ 12 กันยายน พ.ศ. 2558 – วันอาทิตย์ที่ 13 กันยายน พ.ศ. 2558) ณ SPRINT3R [n.] (ซพรินเทอร์) เขาบอกว่ารอบนี้เป็นรอบคืนกำไรสู่สังคม

เนื้อหาคอร์สเรียน

  • Source Code Managment(SCM) คืออะไร?
  • ทำไมเราต้องใช้ SCM และการวางกลยุทธ์
  • SCM ด้วย Git
  • Git คืออะไร?
  • คำสั่งพื้นฐานสามัญประจำบ้านของ Git สำหรับการนำไปใช้งานได้เลย
  • Git กับ Continuos Integration ด้วย Jenkins และ Repository Server
  • อุปนิสัยใจคอและกมลสันดานที่ต้องมีในการทำ SCM
  • อื่นๆ แล้วแต่คนสอนที่จะเพิ่มให้เข้าไป

วันแรกของการเข้าเรียน

ช่วงเข้าเมื่อจำนวนนักเรียนพร้อมก็เริ่มกันเลย

ทีมงานของ SPRINT3R นำโดยพี่หนุ่มแนะนำทีมและพูดเกริ่นนำเรื่อง GIT นั้นว่าคืออะไร มีปีะโยชน์อย่างไร แต่สิ่งที่จำเป็นมากเมื่อผู้ทีใช้งาน GIT จำเป็นต้องใส่ใจมากในการนำ GIT เข้ามาใช้ เรียกว่าถ้าใช้ GIT จำเป็นต้องทำ 4 ข้อนี้

1. ตกลงทีมเรื่องโครงสร้างของ sources code พูดถึงเรื่องโครงสร้างของ source code ของ Project ที่เราพัฒนาว่าจะวางโครงร่างอย่างไร มีไฟล์ มีโครงสร้างอย่างไรบ้าง

source code stucture 2.  ตกลงเรี่องการใช้งาน Feature GIT เรื่องนี้ดูเป็นเรื่องธรรมดาแต่ถ้าเมื่อการพัฒนา Project ใหญ่ ๆ จำเป็นมาก ไม่ว่าจะเป็นเรื่องการแบ่ง Branch การทำงานออกเป็นส่วนๆ เพื่อที่จะติดตามการพัฒาได้ง่ายและนวมถึงคำสั่งพื้นฐานของการใช้งาน GIT เบื้องต้นด้วยเช่น git add,git commit,git push,git pull,… และอื่น ๆ อีกมากมาย

3. การ Merge code บ่อย ๆ เป็นการดูแลรักษาประวัติของการพัฒนาของ branch หลักของการพัฒนา และ ทำให้เห็นประวัติต่างๆ ในการพัฒนา รวมถึงเรื่องการติดตามของประวัติต่างๆ ของการพัฒนา หรือ commit ด้วย

4. เรื่อง commit message นั้นถือเป็นเรื่องจำเป็นมาก ๆ เพราะอย่างน้อยผู้พัฒนาคนอื่นมาดูการ commit code ครั้งนั้นและสามารถเข้าใจได้ง่านว่า นักพัฒนาคนที่ commit code มาเขาได้เปลี่ยนแปลง code อะไร ส่วนไหนไปบ้าง และการใส่ message ที่ดีจะมีประโยชน์ในภายหลังแน่ ๆ เพื่อ git มี Feature การดู log history ได้ ฉะนั้น message ดีจะช่วยให้เรา filter การ message เพื่อหาสิ่งใดสิ่งหนึ่งได้ง่ายๆ

มาดูภาพกาทำงานของ GIT กันก่อนเพื่อความเข้าใจ และจะได้อ่านเนื้อหาต่อไปได้เข้าใจยิ่งขึ้น

git_model

เมื่อเกริ่นเนื้อหาของ GIT กันได้คราว ๆ พอเข้าใจแล้วก็มาเริ่มการใช้งาน GIT กันเลย

 

เริ่มต้นก็ต้องไปติดตั้ง GIT ในเครือง Local ของเราก่อน

1. ลิ้งการ Download GIT :: GIT-SCM

หลังจากติดตั้งเสร็จก็ให้เปิด Git Bash ขั้นมาจะได้หน้าตาแบบนี้ (ขอพูดในเวอชั่นของ Windown นะครับ)

git_bash

 

2. เริ่มคำสั่งการใช้งาน พื้นฐาน สร้าง local repository กันก่อน

$ git init

$ git status

คำสั่ง git status จำเป็นมากครับ เพื่อดูสถานะของการทำงาน ณ ปัจจุบันเลยว่าตอนนี้เราทำอะไรอยู่

3. ต่อไปลองสร้างไฟล์เพื่อทดสอบ (สร้างไฟล์อะไรก็ได้ คิดไม่ออกก็ hello.txt ไปก่อน)

4. เพิ่ม file ทดสอบเข้า stage area เพื่อรอการ commit code ไปยัง local repository โดยใช้คำสั่ง

$ git add hello.txt

5. เมื่อเรา coding จนพอใจและ add file ไปเก็บไว้ที่ stage area จนคิดว่าพอแล้วก็ต้อง นำไฟล์เข้า local repository ซะที โดยใช้คำสั่ง

$ git commit -m “create file hello.txt”

มาถึงขั้นตอนนี้ ไฟล์ทั้งหมดที่เราได้ add เข้าไปจะมาเก็บใน local repository เรียบร้อยแล้ว

6. เนื่องจาก local repository ยังเป็นการเก็บไฟล์ไว้ที่เครื่องเราเครื่องเดียวเท่านั้น ดังนั้นถ้าอยากให้ทีมพัฒนาของเราได้ source code ชุดนี้เราต้องทำการ push source code เหล่านี้ไปยัง remote repository โดย workshop ครั้งนี้ขอใช้ github ที่กำลังโด่งดังอยู่ในตอนนี้ ก็ให้เราสมัครให้เรียร้อย สำหรับคนที่ยังไม่มี account github เป็นของตัวเองก็ไปสมัครได้ ไม่มีค่าใช้จ่ายในการสมัคร และสร้าง remote repository ให้เรียบร้อย

 

 

github_create_project_day1

 

github_link_remote

ได้ remote repo เรียบร้อยแล้วก็ copy link มาเพื่อเอามาเชื่อมต่อกับ local repo ในเครื่องเรา และใช้คำสั่ง

$ git remote add origin [email protected]:pool13433/day-11.git

เท่านี้ remote repo และ local repo จะรู้จักกันแล้ว หลังจากนั้นก็ push เพื่อเราไฟล์จาก local repo ไปยัง remote repo โดยใช้คำสั่ง

$ git push origin master

เราก็จะได้ source code ในเครื่องเรา เหมือนกับ code บน server github เรียบร้อยแล้ว

$ git log

คำสั่ง git log เอาไว้ติดตามดู history ของการทำงาน git ว่าเราทำอะไรผ่านไปแล้วบ้าง

 

เมื่อลองใช้งานคำสั่งได้กันบ้างแล้วเหล่าพี่ ๆ sprint3r ก็จัด workshop เล็ก ๆ มาให้เล่นกันเล่น

และก็จบไปสำหรับวันแรกของการเรียน GIT

 

วันที่ 2 ของการเรียน git

วันนี้เริ่มด้วยการเอาเนื้อหาของการเรียน class เมื่อครั้งที่แล้ว (ก็วันเสาร์แหละครับ) มาสรุปทบทวนกัน และพี่ปุ๋ย (Somkiat.cc)ก็มาพูดถึงความสามารถอื่น ๆ ของ GIT ตัวอย่างเช่น

การ filter ดู history log จาก message,date,… ต่างๆ อีกมากมาย

ช่วงบ่ายทางทีมจัด workshop มาให้ทำกัน ครั้งนี้จะได้เริ่มรวมทีมเพื่อใช้งาน git กับ project จริง ๆ แล้ว

โดย workshop จะมีข้อมูลว่า

  • มีการตั้งโจทย์ หรือเรียกว่า requirement ของ user ก็ว่าได้
  • ให้รวมทีมกันทำโดยให้ระยะเวลาในการพัฒนา 3.30 ชม.
  • โดยเมื่อหมดเวลาจะต้องมีงานส่ง

หลังจากระยะเวลาได้ผ่านไปเรื่อย ๆ ระหว่างนั้นพวกเราก็สร้าง Project ที่พัฒนาด้วยการใช้ git ก็ดำเนินการไปเรื่อย ๆ เริ่มพบปัญหา เริ่มได้พูดถกเถียงปัญหา ได้ร่วมกันช่วยแก้ปัญหา หาแนวทางแก้ไขปัญหาร่วมกัน สุดท้ายหมดเวลา พวกเราก็มีผลงานส่งทันตามกำหนด (ฺBUG นิไม่ต้องถาม เพียบครับ)

หลังจากจบการทำ workshop สุดท้ายทุกคนก็สรุปความรู้ที่ได้จากการร่วมกันทำ workshop นี้ในความรู้สึกของแต่ละคน สิ่งนี้ทำให้เราได้เห็นความคิดของเพื่อน ได้มุมมองใหม่ๆ และสุดท้ายได้เพื่อนใหม่ๆ เพียบ

 

เท่าที่ผมได้สัมผัสกับ git ในช่วงระยะเวลา 2 วัน (สัมผัสแบบการพัฒนาเป็นทีม ปกติใช้งาน git คนเดียว) สิ่งที่ดีๆ หลาย ๆอย่างของ git ทำให้การพัฒนา project ของเราเป็นระเบียบและเป็นแบบแผนที่ดีมาก ผมเลยอยากแนะนำ เพื่อน ๆ ให้เริ่มลองใช้งานกับมันดู ถ้าใครยังไม่เริ่มก็ให้เริ่มตั้งแต่วันนี้ เพราะ git จะทำให้ชีวิตของคุณมีประสิทธิภาพมากขึ้น จริงๆ

เครดิต รูปภาพประกอบ :: http://backlogtool.com/git-guide/en/intro/intro1_2.html