Khóa Cơ bản · Bài 11/13 · Chặng 5 · Bắt lỗi trước khi khách hàng thấy

Git cho người không code: checkpoint và quay lại

Cơ bản 4 phút đọc

Bài này đang khóa

Bụi Code học theo thứ tự: làm xong bài kiểm tra cuối Bài 10: 3 thất bại kinh điển và cách thoát để mở bài này. Mỗi bài dựa trên bài trước, bỏ qua dễ hổng kiến thức.

Git là nút 'lưu game' cho dự án. Học 6 lệnh đủ dùng để lưu bản ổn định, xem AI đã sửa gì, và quay lại khi AI làm hỏng.

Bạn sẽ làm được

  • Hiểu Git làm gì bằng ví dụ đời thường.
  • Dùng 6 lệnh: init, status, add, commit, log, diff, cùng cách quay lại.
  • Lập thói quen commit sau mỗi lát cắt chạy đúng.
Nội dung bài học

Vấn đề thật

AI vừa sửa 7 file. Trang hỏng. Bạn không nhớ trước đó file trông thế nào. Bạn bảo AI “quay lại như cũ”, nó cố nhớ và viết lại, nhưng không giống hẳn bản cũ.

Nếu có Git, việc này mất 10 giây.

Git là gì, nói kiểu đời thường

Hãy nghĩ tới lưu game. Mỗi lần qua một màn khó, bạn lưu. Chết ở màn sau thì tải lại bản lưu, không phải chơi lại từ đầu.

  • Repository (repo, kho): thư mục dự án có Git theo dõi.
  • Commit: một bản lưu, kèm ghi chú bạn đặt.
  • Diff: so sánh: bản hiện tại khác bản lưu ở dòng nào.

Git chạy trên máy bạn, miễn phí. GitHub là dịch vụ lưu kho trên mạng (giống Google Drive cho code); bạn cần nó khi muốn sao lưu hoặc đưa website lên mạng, nhưng không bắt buộc để bắt đầu.

Cài đặt

  • Windows: tải Git tại trang chính thức git-scm.com, cài với lựa chọn mặc định.
  • Mac: mở Terminal, gõ git --version. Nếu máy chưa có, hệ thống sẽ hỏi cài công cụ dòng lệnh; đồng ý.

Kiểm tra:

git --version

Thấy dòng kiểu git version 2.x.x là được. Lần đầu dùng, khai báo tên (tên này ghi vào lịch sử, không phải tài khoản):

git config --global user.name "Ten Cua Ban"
git config --global user.email "email@cuaban.com"

Sáu lệnh đủ dùng

Mở Terminal (Windows: Git Bash hoặc PowerShell) trong thư mục dự án.

1. Bắt đầu theo dõi (làm một lần)

git init

2. Xem có gì thay đổi

git status

Hiện các file đã sửa (đỏ) hoặc đã chọn để lưu (xanh).

3 + 4. Lưu checkpoint

git add .
git commit -m "Lat 2: khoi dau trang + nut Zalo chay dung"
  • git add . chọn mọi thay đổi.
  • git commit -m "..." lưu, kèm ghi chú. Ghi chú nói cái gì chạy được, không phải “update” hay “sửa”.

5. Xem lịch sử

git log --oneline
a3f9c21 Lat 3: luoi anh mau da lam, mobile 1 cot
7be0d14 Lat 2: khoi dau trang + nut Zalo chay dung
1c2e8aa Lat 1: khung trang, header, footer

Chuỗi đầu dòng (a3f9c21) là mã của bản lưu.

6. Xem AI vừa sửa gì

git diff

Dòng bắt đầu bằng - là bị xóa, + là được thêm. Bạn không cần đọc hiểu code để thấy: “ồ, nó sửa cả file header, trong khi mình chỉ bảo sửa bảng giá”.

Quay lại khi AI làm hỏng

Trường hợp 1: chưa commit, muốn bỏ hết thay đổi từ lần lưu gần nhất.

git restore .

Cảnh báo: lệnh này xóa vĩnh viễn các thay đổi chưa commit. Chỉ dùng khi chắc chắn muốn bỏ.

Trường hợp 2: muốn bỏ thay đổi của riêng một file.

git restore ten-file.html

Trường hợp 3: đã commit bản hỏng, muốn quay lại bản trước nhưng vẫn giữ lịch sử.

git revert HEAD

Lệnh này tạo một commit mới “đảo ngược” commit gần nhất. An toàn hơn các cách xóa lịch sử mà bạn có thể thấy trên mạng.

Nhờ AI dùng Git cho bạn

Nếu dùng agent (có quyền chạy lệnh), bạn có thể ghi vào file hướng dẫn dự án:

Quy tắc Git cho dự án này:
- Trước khi bắt đầu một lát cắt, chạy git status và báo tôi nếu còn thay đổi chưa commit.
- Sau khi làm xong một lát và tôi xác nhận chạy đúng, commit với ghi chú mô tả cái chạy được.
- Không bao giờ chạy git reset --hard, git push --force, hay xóa lịch sử khi chưa hỏi tôi.
- Sau mỗi lần sửa, cho tôi xem git diff --stat (danh sách file đã đổi).

Agent làm hộ thao tác, nhưng bạn quyết định khi nào commit: chỉ commit khi đã tự kiểm và thấy chạy đúng.

Lỗi hay gặp

  • Commit một lần cuối ngày. Một commit chứa 10 thay đổi thì không quay lại được từng phần. Commit sau mỗi lát cắt.
  • Commit cả file bí mật. Tạo file .gitignore và ghi các file không được lưu, ví dụ .env (chứa khóa API). Xem bài Đưa website lên mạng an toàn.
  • Chép lệnh lạ từ mạng. Lệnh có chữ --force, --hard, rm -rf có thể xóa công sức của bạn. Hỏi trước khi chạy.

Việc làm ngay

  1. Cài Git, chạy git --version.
  2. Trong thư mục dự án: git init, rồi commit đầu tiên với BRIEF.md và NOTES.md.
  3. Sửa một chữ trong NOTES.md, chạy git diff để thấy thay đổi, rồi git restore NOTES.md để bỏ.

Tóm tắt

  • Git là lưu game cho dự án. Commit sau mỗi lát chạy đúng.
  • git diff cho bạn thấy AI đã sửa gì.
  • git restore bỏ thay đổi chưa lưu; git revert đảo ngược commit an toàn.
  • Không commit bí mật; không chạy lệnh có --force hay --hard khi chưa hiểu.

Nguồn

  1. Git documentation (git-scm.com) (truy cập 16/10/2026)
Kiểm tra cuối bài

Trả lời đúng 3 câu để mở Bài 12

Sai thì đọc giải thích và làm lại, không giới hạn số lần.

Câu 1. Lệnh nào cho bạn thấy AI vừa sửa những gì?
Câu 2. Ghi chú commit nào tốt?
Câu 3. File nào không bao giờ được commit?

Tiến độ lưu trên trình duyệt này. Đổi máy hoặc xóa dữ liệu trình duyệt sẽ mất tiến độ cho tới khi có tài khoản.

Bài này có giúp ích cho bạn không?

Cùng ngẫm một câu

Bạn đã có commit đầu tiên chưa? Nếu chưa, điều gì đang cản bạn — ghi vào NOTES.md rồi xử nó ngay.

Tự trả lời vào NOTES.md của dự án bạn — đó là cách biến bài đọc thành việc làm thật.

Mời Bụi Code ly cà phê

Bụi Code miễn phí cho mọi người. AI viết code, còn người viết bài thì chạy bằng cà phê. Nếu bài học giúp được bạn, mời mình một ly nhé.

Kênh nhận ủng hộ đang được cập nhật. Muốn ủng hộ ngay, nhắn mình qua email phungnb@gmail.com.

Ủng hộ hoàn toàn tự nguyện. Chia sẻ Bụi Code cho một người đang cần cũng quý như một ly cà phê.