HỌC BẰNG THỰC HÀNH
← Lộ trình học
03 — Git, Bash và cấu hình

Git: commit nhỏ và branch có thể review

Thực hiện trên server của bạn, rồi kiểm tra từng tiêu chí.

Cốt lõi

Git: commit nhỏ và branch có thể review

Mục tiêu

Tạo repo ứng dụng riêng, đọc lịch sử và hợp nhất một thay đổi có bằng chứng.

Hiểu trước khi làm

Working tree là file đang sửa, index là nội dung chuẩn bị commit, commit là snapshot có parent. Branch là tên trỏ tới commit; remote là địa chỉ repo khác. Fetch tải refs, pull thêm bước hợp nhất; push cập nhật remote. Trunk-based dùng branch ngắn và PR nhỏ. Rebase viết lại lịch sử, chỉ làm trên branch riêng chưa được người khác dùng.

Chuẩn bị

Hoàn thành các bài cốt lõi trước đó trong module; dùng workspace ~/kdc-labs và ứng dụng mẫu ở project. Chạy agent trên chính máy làm bài, với lab root ~/kdc-labs.

Tải ứng dụng mẫu KDC Notes · Cách tải và chuẩn bị workspace. Không cần mã nguồn nền tảng khóa học.

cd ~/kdc-labs/project
mkdir -p ../evidence
Giải thích lệnh và tham số

cd chuyển vào repo ứng dụng của bạn; .. là thư mục cha ~/kdc-labs. mkdir -p tạo thư mục bằng chứng nếu chưa có, không báo lỗi khi đã tồn tại. Mọi đường dẫn tương đối ở dưới tính từ đây, trừ khi bước ghi rõ máy/thư mục khác.

Thực hành

git init -b main
git config user.name "KDC Learner"
git config user.email "learner@example.invalid"
git status --short
git add .gitignore README.md app.py migrate.py requirements.txt test_app.py Dockerfile compose.yaml frontend k8s k6 echo.py .dockerignore .env.example
git commit -m "Add KDC Notes starter"
git switch -c docs/runbook
Giải thích lệnh và tham số

git init -b main đặt branch đầu tiên. git config không có --global chỉ cấu hình repo này; thay thông tin bằng danh tính bạn muốn công khai. status --short in gọn. add chọn file rõ ràng thay vì thêm cả secrets. switch -c tạo và chuyển branch.

Thêm mục “Cách kiểm tra health” vào README, dùng git diff xem phần sửa, stage riêng README và commit. Đọc git log --oneline --graph --all, chuyển main rồi merge branch với --no-ff để quan sát merge commit. Kiểm tra diff trước/sau; không amend commit người khác đã dựa vào.

git diff
git add README.md
git commit -m "Document health check"
git switch main
git merge --no-ff docs/runbook
git log --oneline --graph --all > ../evidence/git-history.txt
Giải thích lệnh và tham số

--no-ff tạo merge commit ngay cả khi có thể fast-forward. log --oneline một dòng/commit, --graph vẽ quan hệ, --all xem các refs local. > ghi đè file log chỉ trong thư mục evidence.

Tiêu chí tệp nộp bài

Các đường dẫn dưới đây tính từ lab root ~/kdc-labs, không từ thư mục project. Không viết sẵn kết quả giả để qua kiểm tra. Tệp có đúng tiêu đề chưa chứng minh đã thực hiện bài; giữ đầu ra thật và tự đối chiếu các phép thử.

  • project/.git/HEAD — có nội dung refs/heads/main.
  • evidence/git-history.txt — tệp được tạo từ bài làm của bạn.
  • evidence/git-history-branches.md — có nội dung ## Kết quả.

Tự kiểm tra

Lịch sử có commit khởi đầu, commit README và merge; main chứa thay đổi. Lưu log thật cùng giải thích index/working tree/commit. Không có .env/private key trong git ls-files.

Kiểm tra trên web xác nhận tệp cấu hình hoặc hồ sơ bài làm dưới lab root; không xác nhận dịch vụ cloud, kết quả CI hay nội dung lập luận. Bạn phải thực hiện các phép thử bên trên và lưu đầu ra thật để tự đối chiếu.

Lưu bằng chứng

Tạo evidence/git-history-branches.md bằng trình soạn thảo, gồm các mục dưới đây. Điền số liệu và lệnh đã chạy, thời điểm, đầu ra trước/sau, cùng kết luận của bạn; không chỉ sao chép tiêu đề. Không lưu token, mật khẩu, kubeconfig hoặc dump dữ liệu vào báo cáo.

## Môi trường
Hệ điều hành, phiên bản công cụ, cluster/VM và thời điểm.

## Kết quả
Lệnh kiểm tra, đầu ra đã che thông tin nhạy cảm, kết quả mong đợi/thực tế.

## Giải thích
Vì sao cách làm đạt mục tiêu; giới hạn của phép kiểm tra.

## Khôi phục
Cách rollback/cleanup riêng các tài nguyên lab và cách xác nhận lại.

Tài liệu chính thức