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ình | Lịch sử ở đâu | Commit offline |
|---|---|---|
| Tập trung (SVN, CVS) | Chỉ trên server | Không |
| Phân tán (Git) | Mọi bản clone | Có |
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.