---
description: '#HelloFront-end #HelloErmine #HelloWorld2021'
---

# ทำความรู้จักกับ Version Control

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

![](https://lh5.googleusercontent.com/j_4uN2sYwK-qoEblK6LAgnWSjrxOFGsBWsWyuZylrYyR_7XI22HAvOG7jmLjrE-RlqXsdMpaE_kBj53fFrUgmwn5IB8q3hV-2NcLaz1wI1eq7zmF4xVCfD442CU28l_A96-Hn74v)

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

{% hint style="info" %}
การ **checkout** เปรียบเสมือนการเรียกดูเวอร์ชันนั้น ๆ ของไฟล์
{% endhint %}

![](https://lh3.googleusercontent.com/5JtSi0ZORH-QIhPbfQs_gh55Onf2pqoXOg9U4wlhM3CVIPohyaCQm1bNndg2jdIPZMxY-EoNBu3DevdkO-5saC6uNMhHBLAaNu_tJNVJ6U2yDztWekXO79DoCWN288SszyPc0bgv)



### **ประโยชน์ที่เห็นได้ชัดของ Version Control จะมีดังนี้**

* เก็บประวัติการแก้ไข code ไว้ทุกครั้ง และรู้ได้ว่า code ตรงไหนใครเป็นคนเพิ่มเข้ามาหรือแก้ไข
* ช่วยรวม code จากหลาย ๆ คนเข้าด้วยกันให้ง่ายขึ้น ดูได้ว่า code เดิมคืออะไร และแก้ไขเป็นอะไร
* เมื่อเกิดปัญหาก็สามารถติดตามดูประวัติการแก้ไข code ของไฟล์ในแต่ละบรรทัดได้ง่าย
* ช่วยให้สามารถจัดการ project ได้อย่างเป็นระบบ มอง code แต่ละส่วนเป็นฟีเจอร์ ไม่เขียน code ข้ามฟีเจอร์ไปมาใน code ชุดเดียวกัน
* เป็นการสำรองข้อมูลไปในตัว ไม่ต้องกลัวเวลา code มีปัญหาแล้วต้องย้อนกลับไปใช้ code ชุดเก่า และใช้พื้นที่ในการเก็บข้อมูลน้อยเมื่อเทียบกับการสำรองข้อมูลทั้ง project
* สามารถติดตามการทำงานของทุกคนภายในทีมได้จาก history
