Chuyển tới nội dung chính

3.2 — 1. Git là gì và tại sao cần

Mục tiêu bài học

  • Nắm được ý chính của bài và mối liên hệ với module.
  • Áp dụng được kiến thức vào bối cảnh CRM/.NET backend.
  • Sẵn sàng chuyển sang bài kế tiếp với nền tảng chắc chắn.

Nội dung bài học

3.2.1 — Version control là gì?

Hãy tưởng tượng bạn đang xây hệ thống CRM cho một công ty với 5 developer. Tuần trước bạn vừa hoàn thành tính năng tìm kiếm khách hàng. Hôm nay một đồng nghiệp vô tình xóa mất file CustomerService.cs. Không có Git, bạn phải viết lại từ đầu.

Git là một hệ thống quản lý phiên bản phân tán (Distributed Version Control System). Nó lưu lại toàn bộ lịch sử thay đổi của codebase, cho phép nhiều người làm việc song song mà không ghi đè lên nhau.

3.2.2 — Câu chuyện thực tế: Trước và sau khi dùng Git

Không dùng Git — thực trạng phổ biến ở team nhỏ:

project_v1/
project_v1_backup/
project_v2_final/
project_v2_final_FINAL/
project_v2_final_FINAL_ok/ ← ai tạo cái này?
project_v2_final_FINAL_ok_2/ ← thảm họa

Hệ quả: không ai biết phiên bản nào đang chạy trên production, không rollback được khi lỗi, merge code thủ công bằng copy-paste gây mất tính năng.

Với Git:

  • Mỗi thay đổi được ghi lại với tác giả, thời gian, lý do
  • Rollback về bất kỳ thời điểm nào trong vài giây
  • Nhiều người làm song song trên cùng codebase
  • Review code trước khi merge vào nhánh chính

3.2.3 — Git so với SVN so với không dùng gì

Tiêu chíKhông có VCSSVNGit
Làm việc offlineKhóKhông
BranchingThủ côngChậm, nặngNhanh, nhẹ
DistributedKhôngKhông
Phổ biến trong .NETCó (legacy)Chuẩn hiện tại

Bài tập áp dụng

  1. Tóm tắt bài học bằng ngôn ngữ của bạn.
  2. Liên hệ nội dung với một tình huống thực tế trong dự án.
  3. Đề xuất một cải tiến cụ thể sau khi học bài này.

Tự kiểm tra

  • Bạn có thể giải thích lại nội dung chính trong 2 phút không?
  • Bạn có ví dụ áp dụng thực tế chưa?
  • Bạn biết bước tiếp theo cần học/triển khai là gì không?

Kết luận

Hoàn thành bài này giúp bạn có góc nhìn đầy đủ hơn trước khi đi tiếp trong module.

Điều hướng