Commit
Commit là gì?
Phần tiêu đề “Commit là gì?”Commit là một “snapshot” (ảnh chụp) của code tại một thời điểm. Mỗi commit bao gồm:
- Các thay đổi được lưu
- Thông điệp mô tả
- Tác giả và thời gian
- Mã định danh duy nhất (hash)
Quy trình Commit
Phần tiêu đề “Quy trình Commit”Working Directory → Staging Area → Repository (add) (commit)Bước 1: Xem thay đổi
Phần tiêu đề “Bước 1: Xem thay đổi”git statusBước 2: Thêm vào Staging
Phần tiêu đề “Bước 2: Thêm vào Staging”# Thêm một filegit add filename.txt
# Thêm nhiều filegit add file1.txt file2.txt
# Thêm tất cả file thay đổigit add .
# Thêm theo patterngit add *.jsBước 3: Commit
Phần tiêu đề “Bước 3: Commit”git commit -m "Mô tả thay đổi"Viết Commit Message tốt
Phần tiêu đề “Viết Commit Message tốt”Format chuẩn
Phần tiêu đề “Format chuẩn”<type>: <subject>
<body> (tùy chọn)Các type phổ biến
Phần tiêu đề “Các type phổ biến”| Type | Ý nghĩa |
|---|---|
feat |
Tính năng mới |
fix |
Sửa bug |
docs |
Cập nhật tài liệu |
style |
Format code (không đổi logic) |
refactor |
Refactor code |
test |
Thêm/sửa test |
chore |
Công việc khác (build, config…) |
Ví dụ
Phần tiêu đề “Ví dụ”# Tốt ✅git commit -m "feat: add user login feature"git commit -m "fix: resolve null pointer in payment"git commit -m "docs: update API documentation"
# Không tốt ❌git commit -m "fix"git commit -m "update"git commit -m "asdfgh"Commit nhanh
Phần tiêu đề “Commit nhanh”Add + Commit cùng lúc
Phần tiêu đề “Add + Commit cùng lúc”# Chỉ với file đã trackedgit commit -am "message"Sửa commit cuối
Phần tiêu đề “Sửa commit cuối”# Sửa messagegit commit --amend -m "message mới"
# Thêm file vào commit cuốigit add forgotten-file.txtgit commit --amend --no-editXem lịch sử Commit
Phần tiêu đề “Xem lịch sử Commit”# Xem tất cả commitsgit log
# Xem ngắn gọngit log --oneline
# Xem với graphgit log --oneline --graph --all
# Xem n commits gần nhấtgit log -5Ví dụ output
Phần tiêu đề “Ví dụ output”* a1b2c3d (HEAD -> main) feat: add user profile* e4f5g6h fix: resolve login bug* i7j8k9l docs: update README* m0n1o2p Initial commitXem chi tiết Commit
Phần tiêu đề “Xem chi tiết Commit”# Xem thay đổi trong commitgit show a1b2c3d
# Xem diff giữa 2 commitsgit diff commit1 commit2Tiếp theo
Phần tiêu đề “Tiếp theo”Học về Branch để làm việc song song trên nhiều tính năng.