Jitrak Blog

Why to know Version Control System

ทำไมต้องรู้จักกับ Version Control System

26 Sep 2020 13:14

Written by: Yosapol Jitrak

Tags:

Git

Version Control

บทความนี้เป็นการนำบทความที่เคยเขียนเมื่อหลายปีมาแล้ว มาทำการ Repost ใหม่

โดยส่วนตัวแล้ว ผมมองว่าเรื่อง Version Control System
เป็นสิ่งสำคัญที่ควรรู้อันดับต้น ๆ ของงานสาย Software Development เลยละ

หลายคนที่หลงเข้ามาอ่าน อาจจะเคยประสบปัญหา

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

ปัญหาต่อมาคือไม่รู้แต่ล่ะ version ที่ทำไปมีรายละเอียดอะไรบ้าง เลยต้องทำไฟล์ Version เป็น Note กำกับไว้

Version note

ที่ยกมานี้แค่ทำคนเดียวนะครับ
เพราะคนอื่นส่ง Asset พวก Sprite, Texture, 3D มารวมที่ผมหมด
ผ่าน Thumbdrive นั้นแหละ
แล้วถ้าทำงานกับคนอื่นล่ะ
ที่มันต้องรวมงานกันไป รวมงานกันมา
อันนี้ขอไม่เล่า เพราะมันจะยาว และเฉพาะทางเกินไป
เขาก็เลยมี Version Control System ออกมาแก้ปัญหาที่กล่าวมาข้างต้นได้ทั้งหมด
ผมอาจจะเล่าปัญหาต่าง ๆ ไม่ครบนะครับ
อันนี้แค่ประสบการณ์ส่วนตัวอย่างเดียว
Version Control เนีย มันมีอะไรที่แจ่ม ๆ น่าสนใจบ้าง

ไอ้เจ้า Version Control ก็ดันมีหลายเจ้าซะเหลือเกิน

แต่ตอนนั้นปี 2014 Git มาแรง แซงทางโค้งหมด

version control systems used by developers Credit: https://rhodecode.com/insights/version-control-systems-2016

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

ที่มันได้รับความนิยมขนาดนี้ เพราะว่าน่าจะมาจากเหตุผลที่ว่า
โครงการ Open source นั้นใช้ GitHub เสียเป็นส่วนใหญ่
ชื่อมันก็บอกอยู่แล้วเนอะว่า Git เพราะฉะนั้นมันก็ต้องใช้ Git แน่นอนอยู่แล้ว
โครงการ Open source นั้นคืออะไร ผมขอยกหน้าที่นี้ให้กับ Google
เพราะประเด็นหลักเราคือ Version Control System (VCS)
สรุปแล้วมันสามารถแก้ปัญหาที่ผมเจอมาตลอด
ตั้งแต่มัธยม มหาวิทยาลัย จนถึงตอนทำงาน
ไม่ว่าจะเป็นเรื่อง ไฟล์หาย, ไฟล์เสีย, การตั้งชื่อไฟล์, การย้อน Version, การรวมงานกับคนอื่น
เจ้า Git เนีย มันแก้ปัญหาทุกอย่างที่ว่ามาได้จริง ๆ
เพราะฉะนั้น ใครที่เป็น Software Developer
แล้วยังไม่ได้ใช้ Version Control System หรือ VCS เนีย
ก็ไปหัดใช้ซะเหอะ ชีวิตจะได้สบายขึ้น
มีทั้งแบบ Command-line และ GUI ให้เลือกใช้ได้ตามสบายใจ

แบบ Command line
Credit: http://jr0cket.co.uk/2013/01/git-log-makes-multiple-repos-easier-to.html.html

แบบ GUI
Credit: http://shankarjdelphi.blogspot.com/2019/01/set-external-diff-tool-on-sourcetree.html

และก็ไม่จำเป็นต้องเป็น Programmer หรือ Software Developer อย่างเดียวที่ใช้ได้นะ
ใช้กับงานอื่น ๆ ก็ได้ที่ต้องการทำเรื่อง Version แบบนี้ หรือจะเอาไว้เป็น Backup ก็ได้นะ

อาจจะเขียนเนื้อสำคัญไม่ครบ ก็ขออภัยด้วยครับ