5 phút đọc

Version Control

Version Control

Version control là cách lưu lại lịch sử thay đổi của một dự án theo thời gian, biết ai sửa gì và quay lại được phiên bản cũ khi cần.

Vấn đề nó giải quyết

Không có version control, người ta sao chép thư mục thành final_v2, final_real... rồi rối loạn. Một VCS Version Control System (VCS) thay thế cách làm đó bằng một lịch sử history có cấu trúc:

  • Biết ai đổi gì, khi nào, vì sao.
  • Hoàn tác revert về phiên bản cũ.
  • Nhiều người làm song song rồi gộp lại.

Tập trung vs phân tán

Mô hìnhLịch sử ở đâuCommit offline
Tập trung (SVN, CVS)Chỉ trên serverKhông
Phân tán (Git)Mọi bản clone

Git theo mô hình phân tán distributed: mỗi git clone mang về full lịch sử, nên commit được offline và không có single point of failure.

Cách nhớ nhanh

Version control = "cỗ máy thời gian" cho code. Git phân tán nghĩa là mỗi máy giữ một bản sao đầy đủ của lịch sử, khác với SVN/CVS chỉ giữ lịch sử trên một server.