Git คืออะไร

git

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

ความเป็นมาของ Git

Git ถูกสร้างขึ้นมาโดย Linus Torvalds ซึ่งเป็นคนสร้างระบบปฏิบัติการ Linux โดยคุณพี่แกใช้เวลาเขียนโค้ดเพียงแค่ 2 สัปดาห์เท่านั้นเอง ส่วนสาเหตุที่ต้องสร้าง Git ขึ้นมาก็เพื่อจะนำมาใช้ในการพัฒนา Linux นั่นเอง เพราะ Linux ถือเป็นโปรเจคขนาดใหญ่ที่มีโปรแกรมเเมอร์ทั่วโลกร่วมกันเขียนโค้ด  ใครอยากจะเขียนส่วนใหน ก็เขียนไป แล้วก็ commit ส่งโค้ดเข้าไปรวมกับโค้ดของคนอื่นๆ ลองนึกภาพดูว่าโปรเจคที่มีคนทั่วโลกรุมเขียนโค้ด ไอ้ตัวที่คอยดูแลโปรเจค ซึ่งก็คือ Git มันจะต้องเจ๋งขนาดไหน โปรเจคใหญ่ขนาดนี้มันยังเอาอยู่ โปรเจคเล็กๆ นี่เรื่องหมูๆ

ลักษณะเด่นของ Git

ทีนี้เรามาดูลักษณะเด่นของ Git ซึ่งจะทำให้เราเข้าใจตัวตนที่แท้จริงของมันได้ดียิ่งขึ้นกันครับ

Save point Tool

หลายๆ คนอาจบอกว่ามันเป็น backup tool แต่ผมขอเรียกมันว่าเป็น save point tool ดีกว่า เนื่องจากว่าตอนที่เราเขียนโค้ด และทดสอบโค้ดจนพบว่าโค้ดที่เราเขียนนั้นมันทำงานได้ถูกต้องอย่างที่เราต้องการแล้ว เราก็จะ save point มันไว้ (ตามภาษาทางด้านเทคนิคเขาเรียกว่า commit) ซึ่ง save point เหล่านี้ เราจะสามารถย้อนกลับมาหามันเมื่อไรก็ได้ ไม่ว่าจะเป็นการย้อนเวลาไปตอนที่ไฟล์นั้นๆ ยังไม่ถูกลบ ไปตอนที่ไฟล์นั้นๆ ยังไม่ถูกแก้ไข ไปตอนที่ bug มันยังไม่เกิด พอเราเลือก save point ที่ต้องการจะไปได้แล้ว พวกโค้ดต่างๆ ในโฟลเดอร์ที่เราพัฒนาอยู่ก็จะกลับไปเหมือนตอนที่เราทำการ save point ไว้นั่นเอง

History Tool

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

โค้ดสกรัม

ความสามารถที่น่าทึ่งอย่างหนึ่งของ Git ก็คือ คุณสามารถแก้ไขไฟล์เดียวกัน ในวินาทีเดียวกันได้ โดยไม่จำเป็นจะต้องให้อีกฝ่ายแก้เสร็จก่อนแล้วเราค่อยแก้ Git จะรับหน้าที่ merge โค้ดจากคนสองคนให้อย่างถูกต้อง แต่ถ้าหาก Git มันตัดสินใจไม่ได้ว่าควรจะ merge โค้ดยังไง มันก็จะถามเราให้เราเป็นคนตัดสินใจเองว่าตกลงเราจะเอาโค้ดบรรทัดไหนไว้

Personal Performance

ในการ commit โค้ดแต่ละครั้ง Git มันจะเก็บข้อมูลเอาไว้ด้วยว่า commit นั้นๆ เป็นของใคร ทำให้เมื่อกลับมาดูย้อนหลัง เราก็จะเห็นความถี่ของการ commit ของแต่ละคน ซึ่งเราอาจเอาไปวิเคราะห์ได้ เช่น บางคนพอถึงวันศุกร์แล้ว มัน commit ถี่เหลือเกิน มันก็ทำให้เห็นอะไรบางอย่าง แต่อย่างไรก็ตาม อย่าเอาเครื่องมือนี้ไปเป็นเครื่องมือสำหรับกล่าวโทษกัน แต่ให้ไว้เป็นเครื่องมือสำหรับพัฒนาทีม หรือหากเราต้องการจะดูวินัยของตัวเอง เราก็ลองไล่ดู commit ของตัวเองว่าที่ผ่านมาสัปดาห์นึง เรามีแก้โค้ดอะไรไปบ้าง ลองดูการกระจายตัวของการ commit ว่ามันน่าจะพัฒนาตัวเองตรงไหนได้บ้าง

Save money Tool

ประโยชน์ข้อนี้ดูเหมือนจะเป็นประโยชน์ทางอ้อม แต่มันควรค่าแก่การเอามากล่าวถึงอย่างยิ่ง เมื่อก่อนตอนที่เรายังไม่ได้ใช้ Git เข้ามาช่วยดูแลโปรเจค เวลาทำอะไรผิดพลาดทีนึง เราก็อาจต้องเสียเวลาค่อนข้างเยอะในการทำให้โค้ดกลับไปสู่สถานะที่ใช้งานได้ โดยเฉพาะอย่างยิ่งกับโปรเจคขนาดใหญ่ๆ ที่มีคนร่วมกันทำหลายๆ คน ยิ่งเสียเวลาไปมากเท่าไร ก็เท่ากับว่าบริษัทจะต้องเสียเงินไปมากเท่านั้น

บทสรุป

เมื่อหันมาใช้ Git แล้ว มันไม่ได้แปลว่าจะไม่มีปัญหาแบบข้างต้น ก็ยังคงมีบ้างเหมือนกัน แต่การแก้ไขปัญหามันจะเร็วกว่ามาก จากที่ต้องเสียเวลาเป็นวันๆ ก็อาจเหลือเพียงแค่ไม่กี่นาทีเท่านั้นเอง ซึ่งถือว่าคุ้มค่ามากๆ

หากเพื่อนๆ คนไหนสนใจจะใช้งาน Git อย่างจริงจัง ผมขอแนะนำหนังสือ  Git สำหรับโปรแกรมเมอร์ โดยเนื้อหาจะพูดถึงวิธีการใช้งาน Git อย่างละเอียด และเป็นขั้นเป็นตอน อ่านเข้าใจง่ายครับ

(Visited 3,679 times, 4 visits today)

Leave a Reply