Git là gì và tại sao bạn cần học nó?
Bài viết đầu tiên trong series Git cơ bản — dành cho những ai chưa từng dùng Git, hoặc đã dùng nhưng chưa thực sự hiểu mình đang làm gì.
Bạn đã từng có thư mục như này chưa?
du-an/
├── code.py
├── code_v2.py
├── code_final.py
├── code_final_v2.py
├── code_CUOI_CUNG.py
├── code_CUOI_CUNG_sua_loi.py
└── code_backup_2024_03_15.py
Nếu có — đây chính xác là vấn đề mà Git ra đời để giải quyết.
Version Control là gì?
Version control (hay source control) là hệ thống ghi lại lịch sử thay đổi của file theo thời gian. Thay vì bạn tự đặt tên _v2, _final, _backup — hệ thống làm điều đó tự động và thông minh hơn nhiều.
Với version control, bạn có thể:
Xem lại file trông như thế nào tại bất kỳ thời điểm nào trong quá khứ
Biết ai đã thay đổi gì, vào lúc nào, và tại sao
Thử nghiệm thoải mái mà không sợ mất code cũ
Làm việc song song với người khác mà không ghi đè lên nhau
Git ra đời như thế nào?
Năm 2005, Linus Torvalds — người tạo ra Linux kernel — cần một công cụ quản lý code mới. Công cụ cũ (BitKeeper) rút lại quyền dùng miễn phí. Linus không thích bất kỳ giải pháp nào có sẵn, nên ông tự viết một cái mới trong vòng vài tuần.
Đó là Git.
Mục tiêu ban đầu rõ ràng:
Nhanh — phải xử lý được codebase khổng lồ như Linux kernel
Phi tập trung — không phụ thuộc một server trung tâm
Toàn vẹn dữ liệu — không thể sửa lịch sử mà không bị phát hiện
Hơn 20 năm sau, Git là tiêu chuẩn của ngành phần mềm toàn cầu. Gần như 100% công ty tech và open source project đều dùng Git.
Git vs SVN — tại sao Git thắng?
Trước Git, SVN (Subversion) là lựa chọn phổ biến nhất. Sự khác biệt cốt lõi:
| SVN | Git | |
|---|---|---|
| Kiến trúc | Tập trung (cần server) | Phi tập trung (mỗi máy là bản sao đầy đủ) |
| Làm việc offline | Không | Có |
| Branching | Chậm, phức tạp | Nhanh, nhẹ |
| Performance | Trung bình | Rất nhanh |
Git thắng vì nó phù hợp với cách developer thực sự làm việc: không phải lúc nào cũng có mạng, cần thử nghiệm nhiều hướng song song, và cần tốc độ.
Cài đặt Git
macOS:
# Cách 1: Cài Xcode Command Line Tools
xcode-select --install
# Cách 2: Dùng Homebrew (khuyến nghị)
brew install git
Windows:
Tải installer tại git-scm.com/download/win. Chọn các option mặc định là ổn.
Linux (Ubuntu/Debian):
sudo apt update && sudo apt install git
Kiểm tra cài đặt thành công:
git --version
# git version 2.x.x
Cấu hình lần đầu
Sau khi cài, bạn cần cho Git biết bạn là ai. Git gắn tên và email vào mỗi commit bạn tạo — đây là thứ hiện ra trong lịch sử để mọi người biết ai đã làm gì.
git config --global user.name "Dat Ngo"
git config --global user.email "dat@example.com"
Chọn editor mặc định (Git dùng khi cần bạn nhập text như commit message):
# VS Code
git config --global core.editor "code --wait"
# Nano (dễ cho người mới)
git config --global core.editor "nano"
Kiểm tra toàn bộ config:
git config --list
--global nghĩa là gì?
Git có 3 cấp config:
--system: áp dụng cho toàn bộ máy (tất cả user)--global: áp dụng cho user hiện tại, tất cả project — đây là cấp bạn dùng thường xuyên nhất--local: chỉ áp dụng trong repo hiện tại, override--global
Config --global được lưu tại ~/.gitconfig:
[user]
name = Dat Ngo
email = dat@example.com
[core]
editor = code --wait
Bạn có thể mở file này trực tiếp để sửa nếu muốn.
Tóm lại bài này
Git là gì: công cụ version control — ghi lại toàn bộ lịch sử thay đổi code của bạn
Ra đời: 2005, Linus Torvalds, phi tập trung và cực nhanh
Cài đặt:
brew install git/ apt / installer WindowsBắt buộc phải config:
user.namevàuser.email— không có cái này, Git sẽ không cho bạn commit
Bài tiếp theo: Bạn sẽ hiểu 3 vùng quan trọng nhất trong Git — Working Directory, Staging Area, và Repository. Đây là nền tảng để mọi thứ khác có nghĩa.
Series Git cơ bản — Bài 1/10