Cơ bảnKiến thức cơ bản

Các lệnh Git cơ bản: add, commit, push, pull

8 phút đọc17 lượt xem
#git#git command#lệnh git#version control

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

  1. Ôn Git cơ bảnGit là gì?
  2. Học GitHubGitHub là gì?
  3. Học Pull RequestPull Request là gì?

Về tác giả

Ảnh đại diện tác giả Kenji — họa tiết hình học

Kenji

Kỹ sư phần mềm full-stack (Web), hơn 5 năm kinh nghiệm thực tế

  • Python
  • DB
  • Hạ tầng
  • Đào tạo & cố vấn
  • AI

Làm việc cùng đồng nghiệp người Việt, tôi thấy thiếu tài liệu kỹ thuật rõ ràng bằng tiếng Việt. codeahoc là nơi tôi chia sẻ theo hướng thực tế, dễ áp dụng.

Nguyên tắc nội dung

  • Ưu tiên nguồn gốc và góc nhìn từ thực tế triển khai.
  • Nếu có sai sót, nội dung sẽ được cập nhật và sửa kịp thời.