Câu chuyện trước khi có Git

Câu chuyện trước khi có Git

Năm 2004. Một nhóm 3 lập trình viên đang làm dự án web cho khách hàng. Không có Git, không có version control. Họ dùng cách “truyền thống”: copy fol


Câu chuyện trước khi có Git

Năm 2004. Một nhóm 3 lập trình viên đang làm dự án web cho khách hàng. Không có Git, không có version control. Họ dùng cách “truyền thống”: copy folder, đặt tên kiểu project_final, project_final_v2, project_FINAL_thật_sự, project_fix_bug_của_Tuấn

Rồi một ngày, Minh sửa file checkout.php. Tuấn cũng sửa đúng file đó. Họ gửi cho nhau qua email. Ai merge? Merge bằng tay. Merge sai. Production sập. Khách hàng gọi điện lúc 11 giờ đêm.

Câu chuyện này không phải hư cấu — đó là thực tế của hàng triệu team trước khi version control trở nên phổ biến. Và đó chính xác là vấn đề Git ra đời để giải quyết.


Version Control System (VCS) là gì?

VCS là hệ thống theo dõi mọi thay đổi trong codebase theo thời gian. Nó trả lời được 4 câu hỏi quan trọng:

  • Ai đã thay đổi file này?
  • Khi nào thay đổi xảy ra?
  • Thay đổi gì — thêm dòng nào, xóa dòng nào?
  • Tại sao — commit message giải thích lý do

Với VCS, bạn có thể quay ngược thời gian. Bug xuất hiện từ tuần trước? Xem lịch sử, tìm commit nào gây ra, rollback. Team 10 người cùng sửa một file? Hệ thống tự merge, báo conflict chỗ nào cần giải tay.

Các loại VCS

Có 3 thế hệ:

  • Local VCS: Lưu lịch sử trên máy cá nhân. Đơn giản nhưng không cộng tác được. Ví dụ: RCS.
  • Centralized VCS (CVCS): Một server trung tâm lưu toàn bộ lịch sử. Mọi người kết nối vào đó. Ví dụ: SVN, CVS. Vấn đề: server chết = mọi người không làm việc được, mất server = mất toàn bộ lịch sử.
  • Distributed VCS (DVCS): Mỗi người có bản sao đầy đủ của repository — kể cả toàn bộ lịch sử. Không phụ thuộc server trung tâm. Git thuộc loại này.

Git ra đời như thế nào?

Git được tạo ra bởi Linus Torvalds — cha đẻ của Linux kernel — vào năm 2005. Câu chuyện khá thú vị:

Trước đó, Linux kernel dùng một DVCS thương mại tên BitKeeper. Năm 2005, công ty làm BitKeeper thu hồi license miễn phí. Linus không vừa ý, quyết định tự viết một hệ thống mới. Ông đặt ra yêu cầu rõ ràng: phải nhanh, phải đơn giản, hỗ trợ phát triển phi tuyến tính (ngàn branch song song), hoàn toàn phân tán, và có thể handle dự án cỡ Linux kernel (hàng nghìn contributor).

Ông viết Git trong… 10 ngày. Ngày 7/4/2005, Git tự host chính nó — repo đầu tiên của Git chứa source code của Git.


Tại sao Git thống trị?

Năm 2024, khảo sát Stack Overflow cho thấy 93.7% developer dùng Git. Đây không phải tình cờ. Git có một số đặc điểm khiến nó vượt trội:

1. Branching cực nhanh và nhẹ

Trong Git, tạo branch gần như tức thời — chỉ là tạo một pointer 40 bytes. Trong SVN, branch là copy toàn bộ directory. Sự khác biệt này thay đổi hoàn toàn workflow: với Git, bạn tạo branch cho mọi tính năng, mọi bugfix, thậm chí mọi thử nghiệm nhỏ.

2. Làm việc offline hoàn toàn

Vì mỗi máy có toàn bộ history, bạn commit, xem log, tạo branch, merge — tất cả đều được offline. Chỉ cần internet khi push/pull với server.

3. Data integrity

Mọi thứ trong Git được hash bằng SHA-1. Bạn không thể thay đổi lịch sử mà Git không biết. Mọi commit có fingerprint duy nhất. Điều này làm nền tảng cho audit trail trong môi trường DevSecOps.

4. GitHub effect

GitHub ra đời năm 2008 và biến Git từ công cụ của developer thành nền tảng cộng tác của cả thế giới. Open source, code review, CI/CD — tất cả xây trên Git.


Git trong bức tranh DevOps/DevSecOps

Nếu bạn đang học theo hướng DevOps hoặc DevSecOps, Git không chỉ là công cụ — nó là trung tâm của toàn bộ pipeline:

Developer push code → Git repository
                           ↓
                    CI/CD trigger (GitHub Actions, GitLab CI, Jenkins)
                           ↓
                    Build → Test → Security Scan → Deploy
                           ↓
                    Production (với audit trail đầy đủ)

Mọi thứ đều bắt đầu từ một git push. Hiểu Git = hiểu điểm khởi đầu của mọi automation trong DevOps.

Với góc nhìn bảo mật, Git còn giúp:

  • Audit trail: ai thay đổi gì, khi nào — compliance requirement của nhiều tiêu chuẩn (SOC2, PCI-DSS)
  • Code review: mọi thay đổi đi qua Pull Request — không ai push thẳng vào production branch mà không có review
  • Secret detection: tool như git-secrets, TruffleHog scan commit trước khi push để không lộ API key
  • Signed commits: GPG sign commit để xác minh danh tính author

Git vs GitHub vs GitLab — đừng nhầm lẫn

Nhiều người mới hay lẫn lộn:

Khái niệm Là gì Ví dụ
Git Phần mềm VCS chạy trên máy bạn Cài bằng apt install git
GitHub Dịch vụ web host Git repository, thuộc Microsoft github.com
GitLab Tương tự GitHub, có thể self-host, tích hợp CI/CD mạnh hơn gitlab.com hoặc self-hosted
Gitea Self-hosted Git server nhẹ, open source Dùng trong private infra

Git là công cụ. GitHub/GitLab là nền tảng host và cộng tác xây trên Git. Bạn có thể dùng Git mà không cần GitHub — nhưng làm việc nhóm thực tế thì cần một nền tảng như vậy.


Những lý do thực tế bạn cần học Git ngay

Không phải lý thuyết — đây là những tình huống thực tế bạn sẽ gặp:

  1. Mọi job JD đều yêu cầu Git. Backend, frontend, DevOps, QA — tất cả đều cần. Không biết Git = thiếu kỹ năng nền tảng.
  2. Code review qua Pull Request. Đây là quy trình chuẩn tại mọi công ty làm phần mềm nghiêm túc. Không biết Git = không tham gia được.
  3. Deploy bằng git push. Heroku, Vercel, Railway, nhiều platform deploy khi bạn push code. Git = CD pipeline đơn giản nhất.
  4. Cứu code khi sự cố. Lỡ tay xóa file? Merge nhầm? Có Git, quay lại trạng thái trước trong 30 giây.
  5. Portfolio trên GitHub. Nhà tuyển dụng xem GitHub profile của bạn. Commit history đều đặn, project có README, code được review — đây là bằng chứng thực tế của năng lực.

Bạn cần chuẩn bị gì để học series này?

Series này thiết kế cho người mới hoàn toàn. Bạn chỉ cần:

  • Máy tính (Windows, macOS, hoặc Linux đều được)
  • Terminal/Command Prompt cơ bản — biết cd, ls, tạo file là đủ
  • Tài khoản GitHub miễn phí (tạo tại github.com)

Không cần biết lập trình trước. Không cần kinh nghiệm với bất kỳ VCS nào khác. Chúng ta bắt đầu từ zero.


Tổng kết

Git là distributed version control system do Linus Torvalds tạo ra năm 2005. Nó giải quyết bài toán cộng tác, theo dõi lịch sử thay đổi, và bảo vệ code khỏi những tai nạn không mong muốn. Với DevOps/DevSecOps, Git là trung tâm của mọi pipeline — từ CI/CD đến audit trail và compliance.

Học Git không phải là học thêm một tool. Đó là học cách làm việc chuyên nghiệp với code.

Bài tiếp theo: Cài đặt & cấu hình Git lần đầu — chúng ta sẽ cài Git, setup tên/email, tạo SSH key và kết nối với GitHub để sẵn sàng cho mọi bài tiếp theo trong series.

Biên Tập Viên
Biên Tập Viên

Tác giả tại Pioneer — nền tảng kiến thức thực chiến về Công nghệ & Tài chính.

Bình luận (0)

Chưa có bình luận nào. Hãy là người đầu tiên!