Git là gì?
Git là công cụ mà hầu hết lập trình viên dùng mỗi ngày — và việc chưa biết Git đang khiến bạn mất nhiều giờ quản lý code không cần thiết. Bài viết này giải thích Git từ con số không, kèm hướng dẫn thực hành để bạn tạo commit đầu tiên ngay hôm nay.
Định nghĩa Git đơn giản
Git là hệ thống quản lý phiên bản phân tán (Distributed Version Control System). Nó được tạo ra bởi Linus Torvalds vào năm 2005 — chính là người đã tạo ra Linux.
Nghe phức tạp? Hãy hiểu đơn giản thế này:
Git giống như "cỗ máy thời gian" cho code.
Khi chơi game, bạn thường save trước trận boss khó. Nếu thua, bạn load lại từ điểm save đó. Git hoạt động y hệt như vậy — bạn có thể quay lại bất kỳ phiên bản code nào trong lịch sử. Nó giống như Ctrl+Z siêu cấp.
Tại sao cần "quản lý phiên bản"?
Hãy tưởng tượng bạn đang viết báo cáo mà không có Git:
bao-cao_v1.docx
bao-cao_v2.docx
bao-cao_ban-cuoi.docx
bao-cao_ban-cuoi-THAT.docx
bao-cao_ban-cuoi-da-sua.docx
bao-cao_DAY-MOI-LA-BAN-CUOI.docx
Quen không? Với Git, bạn chỉ cần một thư mục duy nhất — Git tự quản lý toàn bộ lịch sử thay đổi.
Tại sao lập trình viên cần Git?
Quản lý code hiệu quả
Với Git, mọi thay đổi được ghi lại tự động. Bạn biết rõ "ai" đã thay đổi "cái gì" vào "lúc nào". Nếu có lỗi xảy ra, quay lại phiên bản trước chỉ mất vài giây.
Làm việc nhóm dễ dàng
Nhóm 5 người cùng làm một dự án mà không có Git — bạn phải gửi file qua Zalo hoặc USB, rồi tự ghép code lại. Rất dễ mất code hoặc ghi đè lên nhau.
Với Git, mỗi thành viên làm việc trên phần riêng, xong rồi tự động gộp (merge) lại. An toàn và nhanh hơn nhiều.
Không sợ mất code
Khi bạn đẩy code lên GitHub (push), code được lưu trên cloud. Dù máy tính hỏng, code vẫn an toàn. Git đóng vai trò backup tự động.
Git và GitHub khác nhau thế nào?
Đây là câu hỏi người mới hay nhầm nhất. Git và GitHub là hai thứ hoàn toàn khác nhau:
| Git | GitHub | |
|---|---|---|
| Là gì | Phần mềm cài trên máy tính | Dịch vụ web trên internet |
| Làm gì | Quản lý phiên bản code | Lưu trữ repo + cộng tác + CI/CD |
| Tạo bởi | Linus Torvalds (2005) | Tom Preston-Werner (2008) |
| Dùng offline | Có | Không |
| Miễn phí | Hoàn toàn miễn phí | Miễn phí (có gói trả phí) |
Git là công cụ, GitHub là nơi lưu trữ kết quả trên internet. Không có Git thì không dùng được GitHub — nhưng không có GitHub vẫn dùng được Git.
Tìm hiểu chi tiết hơn tại GitHub là gì? Khác gì với Git?
Cài đặt Git
Trên Windows
- Truy cập git-scm.com
- Tải file cài đặt và chạy
- Nhấn "Next" theo mặc định là được
Trên macOS
# Cài bằng Homebrew (khuyến nghị)
brew install git
# Hoặc cài qua Xcode Command Line Tools
xcode-select --install
Trên Linux
# Ubuntu/Debian
sudo apt update
sudo apt install git
# Fedora
sudo dnf install git
Kiểm tra cài đặt thành công
git --version
# Kết quả ví dụ: git version 2.47.0
Thấy số phiên bản hiện ra là bạn đã cài thành công.
Các khái niệm Git cơ bản
Repository (kho chứa code)
Repository (gọi tắt: repo) là "kho chứa" toàn bộ code và lịch sử thay đổi của dự án.
- Local repository: Repo trên máy tính của bạn
- Remote repository: Repo trên server (ví dụ: GitHub)
Commit (lưu thay đổi)
Commit giống như "điểm save" trong game. Mỗi khi hoàn thành một phần code, bạn "commit" để lưu lại trạng thái đó. Mỗi commit có một message mô tả thay đổi.
Branch (nhánh)
Branch là bản sao độc lập của code để phát triển tính năng mới. Khi hoàn thành, bạn gộp (merge) vào nhánh chính (main). Code chính luôn an toàn trong khi bạn thử nghiệm.
Staging Area (khu vực chuẩn bị)
Git có bước trung gian gọi là staging area:
Thư mục làm việc → [git add] → Staging Area → [git commit] → Repository
Staging area cho phép bạn chọn lọc những file nào muốn commit — thay vì commit tất cả một lúc.
Thực hành: Tạo repository Git đầu tiên
Mở Terminal (hoặc Command Prompt trên Windows) và làm theo từng bước:
Bước 1 — Cấu hình ban đầu
Chỉ cần làm một lần duy nhất:
# Đặt tên của bạn
git config --global user.name "Nguyen Van Minh"
# Đặt email của bạn
git config --global user.email "minh@example.com"
Bước 2 — Tạo repository
# Tạo thư mục mới cho dự án
mkdir du-an-dau-tien
cd du-an-dau-tien
# Khởi tạo Git repository
git init
# Kết quả: Initialized empty Git repository
Bước 3 — Tạo file và commit
# Tạo file README
echo "# Dự án đầu tiên của tôi" > README.md
# Kiểm tra trạng thái — Git phát hiện file mới
git status
# Thêm file vào staging area
git add README.md
# Lưu thay đổi (commit)
git commit -m "Tạo file README cho dự án"
Bước 4 — Xem lịch sử commit
git log
# Kết quả:
# commit abc123... (HEAD -> main)
# Author: Nguyen Van Minh <minh@example.com>
# Date: Thu Mar 27 10:00:00 2026 +0700
#
# Tạo file README cho dự án
Chúc mừng! Bạn vừa hoàn thành commit Git đầu tiên.
Các lệnh Git cơ bản cần nhớ
git init— Khởi tạo repository mớigit status— Kiểm tra trạng thái hiện tạigit add— Thêm file vào staging areagit commit -m "message"— Lưu thay đổigit log— Xem lịch sử commitgit diff— Xem những gì đã thay đổigit clone URL— Sao chép repository từ remotegit push— Đẩy code lên remotegit pull— Lấy code mới nhất từ remote
Tìm hiểu chi tiết từng lệnh tại Các lệnh Git cơ bản: add, commit, push, pull.
Câu hỏi thường gặp (FAQ)
Hỏi: Git và GitHub có phải cùng một thứ không?
Trả lời: Không. Git là công cụ quản lý phiên bản cài trên máy. GitHub là dịch vụ web lưu trữ repo trên cloud.
Hỏi: Học Git có khó không?
Trả lời: Các lệnh cơ bản (init, add, commit, push, pull) chỉ mất vài ngày để làm quen. Tính năng nâng cao học dần khi dùng thực tế.
Hỏi: Có công cụ giao diện (GUI) cho Git không?
Trả lời: Có. VS Code tích hợp sẵn Git, ngoài ra có GitHub Desktop, SourceTree. Dù vậy, nên nắm vững lệnh cơ bản trước.
Hỏi: Không phải lập trình viên có dùng được Git không?
Trả lời: Được. Writer, designer, nhà nghiên cứu — ai cần quản lý phiên bản file đều dùng được Git.
Bước tiếp theo — Học gì sau Git cơ bản?
- Tìm hiểu GitHub — Lưu code trên cloud và cộng tác → GitHub là gì? Khác gì với Git?
- Học sâu hơn các lệnh Git — Branch, merge, rebase → Các lệnh Git cơ bản: add, commit, push, pull
- Học Pull Request — Quy trình làm việc nhóm chuyên nghiệp → Pull Request là gì? Quy trình review code trên GitHub
Git là công cụ lập trình viên dùng mỗi ngày. Bắt đầu từ hôm nay và dần làm quen qua thực hành.