Tổng quan các lệnh Git cơ bản
Chỉ cần thuộc 10 lệnh Git là bạn có thể xử lý 90% công việc hằng ngày. Bài viết này hướng dẫn chi tiết từng lệnh Git người mới cần biết, kèm ví dụ thực tế và quy trình làm việc hoàn chỉnh.
Nếu bạn chưa biết Git là gì, hãy đọc Git là gì? Hướng dẫn Git cơ bản trước.
Lệnh khởi tạo và cấu hình
git init — Khởi tạo repository
# Tạo thư mục dự án mới và khởi tạo Git
mkdir du-an-moi
cd du-an-moi
git init
# Kết quả: Initialized empty Git repository in .git/
git clone — Sao chép repository từ remote
# Sao chép repo từ GitHub về máy
git clone https://github.com/username/ten-repo.git
# Sao chép và đặt tên thư mục khác
git clone https://github.com/username/ten-repo.git ten-thu-muc-moi
git config — Cấu hình
# Cấu hình tên và email (bắt buộc lần đầu)
git config --global user.name "Nguyen Van Minh"
git config --global user.email "minh@example.com"
# Xem tất cả cấu hình
git config --list
Lệnh theo dõi thay đổi
git status — Kiểm tra trạng thái
git status
# Hiển thị: file mới chưa track, file đã sửa, file đã stage
Đây là lệnh bạn sẽ dùng nhiều nhất — chạy trước khi add hoặc commit để biết trạng thái hiện tại.
git diff — Xem thay đổi chi tiết
git diff # Thay đổi chưa stage (chưa git add)
git diff --staged # Thay đổi đã stage (sắp commit)
git add — Thêm vào staging area
git add index.html # Thêm 1 file cụ thể
git add index.html style.css # Thêm nhiều file
git add . # Thêm tất cả file đã thay đổi
Lệnh commit
git commit — Lưu thay đổi
git commit -m "Thêm trang chủ và file CSS"
git commit -am "Sửa lỗi hiển thị" # Add + commit cùng lúc (chỉ với file đã tracked)
Mẹo viết commit message tốt:
- Ngắn gọn, rõ ràng về nội dung thay đổi
- Dùng động từ hành động:
"Thêm form đăng ký","Sửa lỗi login","Xóa file tạm" - Tránh message mơ hồ:
"fix","update","wip"
git log — Xem lịch sử
git log # Lịch sử đầy đủ
git log --oneline # Mỗi commit 1 dòng — dễ đọc hơn
git log -5 # Chỉ xem 5 commit gần nhất
git log --graph # Hiển thị dạng đồ thị (hữu ích khi có nhiều branch)
Lệnh remote (làm việc với GitHub)
git push — Đẩy code lên remote
git push -u origin main # Lần đầu: -u để set upstream
git push # Các lần sau: push lên nhánh đã set
git pull — Lấy code mới nhất từ remote
git pull # Lấy và merge tự động
git pull origin main # Chỉ định rõ remote và branch
git fetch — Kiểm tra thay đổi mà không merge
git fetch origin
git diff main origin/main # Xem sự khác biệt trước khi merge
Dùng git fetch khi muốn xem có gì mới trên remote trước khi quyết định có pull về không.
Lệnh branch (nhánh)
git branch # Liệt kê tất cả branch
git branch ten-nhanh-moi # Tạo branch mới
git checkout ten-nhanh # Chuyển sang branch khác
git checkout -b feature/login # Tạo và chuyển sang branch mới (2 lệnh trong 1)
git merge feature/login # Gộp branch vào branch hiện tại
git branch -d feature/login # Xóa branch sau khi merge
Lệnh hoàn tác
git checkout -- ten-file.txt # Bỏ thay đổi chưa stage (khôi phục về lần commit cuối)
git reset HEAD ten-file.txt # Unstage file (bỏ ra khỏi staging area)
git revert abc1234 # Tạo commit mới để hoàn tác — cách an toàn nhất
Lưu ý: Ưu tiên dùng git revert thay vì git reset --hard khi làm việc nhóm — vì revert không xóa lịch sử commit.
Quy trình làm việc hằng ngày
Đây là quy trình chuẩn mà hầu hết lập trình viên áp dụng:
# 1. Lấy code mới nhất từ remote
git pull origin main
# 2. Tạo branch mới cho tính năng đang làm
git checkout -b feature/trang-lien-he
# 3. Viết code...
# 4. Kiểm tra và commit
git status
git add .
git commit -m "Thêm trang liên hệ"
# 5. Push branch lên remote
git push origin feature/trang-lien-he
# 6. Tạo Pull Request trên GitHub để review
Câu hỏi thường gặp (FAQ)
Hỏi: Quên git add trước khi commit thì sao?
Trả lời: Git sẽ báo "nothing to commit, working tree clean". Chỉ cần git add rồi commit lại là được.
Hỏi: Viết sai commit message thì sửa thế nào?
Trả lời: Dùng git commit --amend -m "Message mới" để sửa commit gần nhất — chỉ nên làm trước khi push.
Hỏi: git pull và git fetch khác nhau thế nào?
Trả lời: git fetch chỉ tải thông tin về mà không thay đổi code của bạn. git pull = fetch + merge — tải về và tự động gộp vào branch hiện tại.
Hỏi: Lỡ commit nhầm file thì xử lý thế nào?
Trả lời: Dùng git revert [commit-hash] để tạo commit hoàn tác an toàn, hoặc git reset HEAD~1 nếu chưa push.
Bước tiếp theo
- Ôn Git cơ bản → Git là gì?
- Học GitHub → GitHub là gì?
- Học Pull Request → Pull Request là gì?