เห้ย … ยังแบ้คอัพโค้ดแบบก้อปทั้งโฟลเดอร์แล้วตั้งชื่อตามวันเดือนปี อยู่อีกเหรอ / เห้ย … ทำไมยังแบ็กอัพโค้ดแบบโบราณอยู่วะ เปลืองพื้นที่ชิบหาย / เห้ย … ใครเขียนโค้ดหน้านี้วะ / เหี้ย … โค้ดบรรทัดนี้เราเขียนไว้ทำขี้เกลืออะไรวะ?

หลากหลายของเห้ยและเหี้ย สามารถจัดการได้ด้วย Git

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

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

มันใช้ง่ายมากๆ เพียงแต่ต้องศึกษาหลักการนิดหน่อยเท่านั้น

แล้ว Git มันคืออะไร

Git มันเป็นโปรแกรมที่อยู่ในกลุ่ม SCM แล้ว SCM มันคืออะไร SCM ก็คือ Source Control Management คือกลุ่มโปรแกรมที่ใช้สำหรับควบคุมซอร์สโค้ด ควบคุมยังไง

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

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

มันเหมือนเล่นเกมส์นั่นแหละ เล่นไปสักระยะหนึ่งเราก็เซฟพ้อยต์ (เท่ มีตอเต่าการันต์)ไว้ วันหลังอยากกลับไปเล่นต่อตอนไหนก็เลือกเอาจากเซฟพ้อยต์

เนื่องจากเราทำเซฟพ้อยต์เท่าไรก็ได้ เพราะฉะนั้น เล่นกับโค้ดได้ไม่ต้องกลัวพัง พังก็ไปเอาเซฟพ้อยต์กลับมา ก็เท่านั้นเอง

Git มันก็คือไอ้ที่กล่าวไปข้างบนนั่นแหละ

ไม่เปลืองพื้นที่เหรอ

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

ถ้าไม่เชื่อก็ลองใช้เองดู

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

ฟรีใช่มั้ย

ฟรีครับ ตาไลนัส(คนสร้าง Linux) แกเขียนโค้ดขึ้นมาให้ใช้งานกันฟรีๆ โดยใช้เวลาเขียนแค่สองสัปดาห์ เทพมากมาย

เนื่องจากพื้นฐานของ Git ถูกสร้างขึ้นมาเพื่อใช้งานร่วมกันหลายคนต่อหนึ่งโปรเจ็ก (ใช้คนเดียวก็ไม่มีใครว่าอะไร ได้ประโยชน์โคตรๆเหมือนกัน) จึงมีคนนำ Git ไปติดตั้งในเครื่องเซิฟเวอร์ของตัวเอง แล้วเปิดให้บริการเป็นที่เก็บ Git (github.com, bitbucket.com เป็นต้น) อัพโหลดเซฟพ้อยต์ไปเก็บที่นั่นว่างั้นเถอะ

แต่ต่อให้เราต้องการใช้งาน Git ในเครื่องตัวเองเครื่องเดียวก็ใช้ได้ เพราะ Git มันเป็น Distribution SCM

Distribution SCM

Distribution SCM ก็คือ SCM แบบกระจาย SCM แบบกระจาย ก็คือ กระจาย ไม่รู้จะอธิบายยังไง ไปหาอ่านเอาเองในกูเกิลละกัน

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

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

เรื่องอะไรที่เราพอมีพื้นมาบ้าง มันก็เป็นเรื่องง่ายทั้งนั้น

ครับ