Fallen tree

ผมเคยเจอบทความหลายต่อหลายบทความที่มีประโยชน์ เขียนโดยโปรแกรมเมอร์ แต่ไม่ได้นำมาใช้งาน เพราะอ่านไปแล้วไม่รู้ว่ามันมีผลกระทบอะไรกับชีวิตการเขียนโปรแกรมของตัวเอง

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

ความสามารถของ Git โดยคร่าวๆ จะมีดังนี้ ย้ำว่านี่เพียงแค่คร่าวๆ ความสามารถจริงของมันเยอะกว่านี้มาก

git-1
บันทึกความเปลี่ยนแปลงของโค้ดไว้ทุกเม็ด  อันนี้จะเรียกว่าการทำแบ้กอัพก็ได้ เพราะว่าเราสามารถย้อนกลับโค้ดไป ณ ตำแหน่งใดๆก็ได้ ไม่ต้องก้อปปี้โฟลเดอร์กันอีกต่อไป

git-2
สื่อสารกับเพื่อนร่วมทีมด้วยการเขียนคอมเม้นท์ตอนทำเซฟพ้อยต์ (อันที่จริงแล้วในภาษาของ Git เขาเรียก Snapshot) หรือถ้าทำงานอยู่คนเดียวเราก็เขียนบันทึกเป็นความจำของตัวเอง มาอ่านทีหลังก็จะได้เข้าใจได้ง่ายขึ้นว่าเราทำอะไรกับโค้ด

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

git-4
Git มันรู้กระทั่งว่า เพิ่มบรรทัดไหนเข้าไป เอาบรรทัดไหนออกไป หรือโค้ดบรรทัดไหนเปลี่ยนแปลงไป สุดๆ

git-5
รู้ว่าใครเป็นคนแก้โค้ด ถามได้ถูกตัว เวลาต้องการทราบว่าเพิ่มหรือแก้เพราะอะไร

git-6
มีฟังก์ชั่น Blame (กล่าวโทษ) ด้วย รู้เลยว่าใครเป็นคนแก้บรรทัดไหน เวลาเท่าไร ต่อไปจะแก้ตัวไม่ได้ว่า เฮ้ย…ผมไม่ได้แก้

เรียกได้ว่า Git มันเก็บรายละเอียดทุกเม็ด ใช้ Git เถอะ มันดีกว่าจะมานั่งก้อปปี้โฟลเดอร์ตั้งชื่อตามวันที่ ทำแบ็กอัพ