จากการทำงานร่วมกันเป็นทีม พบว่ามีปัญหาข้อมูลเกิดการสูญหาย และไม่สามารถติดตามได้ว่าเกิดจากอะไร ต้องขอเล่าวิธีการทำงานแบบเดิมก่อนที่จะเปลี่ยนมาใช้ Git และ Github วิธีการทำงานก็จะเป็นแบบ CP (Copy and Paste) ที่ทั่วไปใช้งานกัน ไม่นานความสนุกจากการทำงานก็เริ่มเกิดขึ้น เช่น ทำงานไปแล้วหลังจากรวมงานกับทีมงานของตนเองก็หายไป เป็นการโชคดีที่ส่วนใหญ่จะยังมีการเก็บงานของตนเองเก็บไว้ โดยอาจจะตั้งชื่อไฟล์หรือ Folder เป็นวันที่บ้าง เป็นเวอร์ชันบ้าง แต่ยังไงก็ยังหนีไม่พ้นงานหายอยู่ดี วิธีแรกที่เลือกมาแก้ไขปัญหา คือการสร้างพื้นที่ให้ทุกคนมาทำงานด้วยกันในไฟล์เดียวกันได้ แต่ก็ไม่สามารถแก้ปัญหาถ้าอยากกลับไปใช้งานข้อมูลหรือไฟล์ก่อนหน้า 1 วันหรือมากกว่านั้นก็ทำไม่ได้อยู่ดี จึงมองหาแนวทางใหม่ที่ตอบโจทย์ของปัญหามากยิ่งขึ้น สิ่งที่ทีมเลือกก็ คือ Git และ Github
Git คือ Version Control ตัวหนึ่ง ซึ่งเป็นระบบที่มีหน้าที่ในการจัดเก็บการเปลี่ยนแปลงของไฟล์ในโปรเจ็คเรา มีการ backup code ให้เรา สามารถที่จะเรียกดูหรือย้อนกลับไปดูเวอร์ชั่นต่างๆของโปรเจ็คที่ใด เวลาใดก็ได้ หรือแม้แต่ดูว่าไฟล์นั้นๆใครเป็นคนเพิ่มหรือแก้ไข หรือว่าจะดูว่าไฟล์นั้นๆถูกเขียนโดยใครบ้างก็สามารถทำได้ ฉะนั้น Version Control ก็เหมาะอย่างยิ่งสำหรับนักพัฒนาไม่ว่าจะเป็นคนเดียวโดยเฉพาะอย่างยิ่งจะมีประสิทธิภาพมากหากเป็นการพัฒนาเป็นทีม
อ่านรายละเอียดเพิ่มเติมได้ที่ Pro Git : แปลไทย
ทำไมถึงต้องใช้ Git ?
- ไม่ต้อง copy folder แล้วเปลี่ยนชื่อ เช่น ตั้งเป็น วันเดือนปี เป็นต้น
- สามารถกลับไปแก้งานที่เคยทำไว้ ต่อจากวันที่เคยทำงานนั้นไว้
- เผลอลบโค้ด หรือทำข้อมูลหาย อยากจะกู้คืนสามารถทำได้ง่ายๆ
- ประหยัดต้นทุน และหมดปัญหาเรื่อง Flash Drive ที่ใช้บันทึกงานหาย
- หมดปัญหาเรื่องการทะเลาะกันภายในทีมเรื่องงานหาย เพราะสามารถติดตาม(คนทำ)ได้
ปัญหาของคนที่เริ่มต้นใช้งาน Git
- Copy ไฟล์หรือโค้ดไปวางทับก็ทำได้เหมือนกัน? ไฟล์วางทับไปแล้วเอาไฟล์ก่อนหน้าหรือเมื่อวันก่อนกลับมาไม่ได้
- จำคำสั่งไม่ได้? ปัจจุบันมีแบบ GUI ให้งาน จำไม่ได้ก็ไม่เป็นไร
- ลืมขั้นตอนการใช้งาน จะเอาไฟล์ไปรวมกับทีมต้องทำไง? สำหรับ git ครั้งแรก clone หลังจากนั้น add, commit, pull, push แนะนำแค่นี้ เพราะคำสั่งของ Git ที่เหลือเป็นคำสั่งเฉพาะ
- เจอ Conflict เผลอทำไฟล์ของเพื่อนหรือตัวเองหาย? ถ้ามีการ commit ไม่ต้องตกใจ เพราะยังไงก็เอาไฟล์หรือโค้ดคืนมาได้
- งานของวันนี้ยังไม่เสร็จค่อยเอางานไปรวมตอนเสร็จละกัน? ควรวางแผนงานให้สามารถรวมงานได้ในระดับ function เพราะการรวมงานบ่อยๆ ไม่ได้ส่งผลเสียอะไร (คุยกับทีมด้วยนะว่าทำอะไรอยู่)
3 ขั้นตอนง่ายๆ ในการใช้งาน Git + GitHub
1. ติดตั้ง (1 โปรเจคทำแค่ 1 ครั้งเท่านั้น)
- Windows ดาวน์โหลดตัวติดตั้งได้จาก https://git-scm.com/downloads
- Mac OS X Yosemite or later ติดตั้งผ่าน Terminal ให้พิมพ์
$ git version
- Linux ติดตั่งผ่าน Terminal ให้พิมพ์
$ sudo apt-get install git
Git Configurations
ก่อนจะเริ่มใช้งาน Git ได้นั้น จำเป็นต้องตั้งค่าการใช้งานเบื้องต้นก่อน ในบทความนี้จะใช้โปรแกรม Git Bash ที่ติดตั้งมาพร้อม Git for Windows
$ git config –global user.name “username on github”
$ git config –global user.email “email on github”
2. สรา้งโปรเจค (1 โปรเจคทำแค่ 1 ครั้งเท่านั้น)
Github คืออะไร ? Github เป็นเว็บเซิฟเวอร์ที่ให้บริการในการฝากไฟล์ Git (ทั่วโลกมักนิยมใช้ในการเก็บโปรเจ็ค Open Source ต่างๆ ที่ดังๆ ไม่ว่าจะเป็น Bootstrap, Rails, Node.js, Angular เป็นต้น)
จุดเด่นของ Github คือใช้ฟรี และสร้าง repository ได้ไม่จำกัด สามารถใช้ได้ทั้ง public repository และ private repository ตามเงื่อนไขของ Github
การสร้าง repository
ติ๊กเลือก initialize this repository with a README เพื่อให้ง่ายต่อการ Clone และสามารถเลือกเป็น Public Repository หรือ Private Repository และกด Create repository
3. การ Clone โปรเจคเพื่อทำงานร่วมกับทีม (ควรทำทุกครั้งที่มีการแก้ไขงานเสร็จ)
เลือก HTTPS แล้วทำการคัดลอก link เพื่อนำไปใช้ในการ Clone โปรเจค
เลือกพื้นที่ในการจัดเก็บโปรเจค และทำการเปิด cmd เพื่อ cd ไปยังที่อยู่ที่ต้องการ
$ cd c:/git_project
$ git clone https://github.com/<username>/<project name> <folder name>
4. เอางานของเราไปรวมกับทีม (ควรทำทุกครั้งที่มีการแก้ไขงานเสร็จ)
จากรูปจะเห็นว่าขั้นตอนการทำงานของ Git และ Github อาจจะดูวุ่นวายไปหน่อย แต่เราไม่ต้องสนใจเรื่องราวทั้งหมดที่เกิดขึ้นของ partner’s หรือเพื่อนร่วมทีม สิ่งที่ต้องสนใจคือ ได้มีการแก้ไขไฟล์หรือไม่
ข้อแนะนำ การใช้งานคือคำสั่งที่จะช่วยให้เราสามารถดึงขึ้นมูลล่าสุดลงมาที่เครื่องของเราเองได้ และยังช่วยให้เห็นปัญหาที่เกิดขึ้นกับโปรเจค
$ git pull
หากไม่มีปัญหาเกิดขึ้น ทราบได้อย่างไรว่ามีปัญหาหรือไม่ คำสั่งนี้เพื่อตรวจสอบโปรเจค
$ git status
ไม่ว่าจะเกิดอะไรขึ้นกับโปรเจค หากมั่นใจว่าโค้ดหรือข้อมูลที่มีอยู่มีความจำเป็นต่อโปรเจค ให้ใช้คำสั่งในการนำงานของเราไปรวมกับทีม ตามลำดับ
$ git add <path file>
$ git commit -m <comment>
$ git push
หากไม่สามารถใช้คำสั่ง git push ได้ให้ทำการ pull อีกครั้งเนื่องจากอาจจะมีคนแก้ไขไฟล์เดียวกันหรือเพิ่งมีการอัพโหลดข้อมูลขึ้นมา
เนื่องจากการใช้งาน Git และ Github มีขั้นตอนหรือการใช้งานได้หลายวิธี ทั้งนี้ขั้นตอนทั้งหมดเป็นเพียงขั้นตอนพื้นฐานวิธีหนึ่งที่จะทำให้สามารถทำงานร่วมกับกับทีมของเราได้ โดยไม่ต้องกังวลเรื่องข้อมูลหายในระหว่างการทำงาน ซึ่งจะช่วยให้การทำงานร่วมกันกับทีมมีความรวดเร็วและปลอดภัยมากขึ้น แต่อย่างไรก็ตาม Git เป็นเพียงตัวช่วยในการทำงานในการควบคุมและจัดเก็บข้อมูลเพียงเท่านั้น ไม่ได้ทำให้งานที่ทำออกมามีความตรงกับความต้องการ การทำงานเป็นทีมมีความจำเป็นในการคุย ทำความเข้าใจกับทีมอย่างมาก เพื่อให้มีความเข้าใจตรงกัน และทำให้งานออกมาถูกต้องมากขึ้น
ข้อมูลอ้างอิง
- What is Git and Github?
- [How to] วิธีใช้ Git กับ PhpStorm | by st.nann | st-sanyanee
- ทำความรู้จัก Git & GitHub พร้อมการใช้งานร่วมกับ VS Code เบื้องต้น