Giao diện
Thực hành: Git Basic Workflow
🎯 Mục tiêu
🎯 Sau bài thực hành này, bạn sẽ:
- Thành thạo quy trình init → add → commit → status → log
- Hiểu rõ vai trò của staging area trong Git workflow
- Phân biệt được working directory, staging area, và repository
- Tự tin thao tác với Git trong dự án thực tế
Phần 1: Trắc nghiệm
🧠 Quiz
Câu 1: Staging area trong Git dùng để làm gì?
- [ ] A) Lưu trữ vĩnh viễn tất cả thay đổi của dự án
- [x] B) Chọn lọc những thay đổi nào sẽ đưa vào commit tiếp theo
- [ ] C) Tự động đồng bộ code lên remote repository
- [ ] D) Sao lưu file gốc trước khi chỉnh sửa
💡 Giải thích: Staging area (hay index) là vùng trung gian giữa working directory và repository. Nó cho phép bạn kiểm soát chính xác những thay đổi nào sẽ vào commit — không bắt buộc commit tất cả mọi thứ cùng lúc.
🧠 Quiz
Câu 2: Sự khác biệt chính giữa git commit và git push là gì?
- [ ] A) Không có khác biệt — cả hai đều lưu code lên server
- [ ] B)
git commitchỉ hoạt động khi có internet - [x] C)
git commitlưu thay đổi vào local repository,git pushđẩy lên remote - [ ] D)
git pushtạo commit mới,git commitgửi commit lên server
💡 Giải thích: Git là hệ thống phân tán.
git committạo snapshot tại local — hoàn toàn offline.git pushmới là thao tác đưa các commit lên remote repository (GitHub, GitLab...).
🧠 Quiz
Câu 3: File .gitignore có tác dụng gì với file đã được track trước đó?
- [ ] A) Tự động xóa file khỏi repository
- [ ] B) Ngăn mọi thay đổi trên file đó
- [x] C) Không có tác dụng — file đã track vẫn được theo dõi bình thường
- [ ] D) Chuyển file sang trạng thái unmodified
💡 Giải thích:
.gitignorechỉ ảnh hưởng đến file chưa được track. Nếu file đã trong repository, bạn cầngit rm --cached <file>để untrack trước, rồi.gitignoremới có hiệu lực.
Phần 2: Sắp xếp thứ tự lệnh
🧩 Parsons Problem
Bài 1: Khởi tạo dự án mới và tạo commit đầu tiên
Sắp xếp các bước sau theo đúng thứ tự:
mkdir my-project && cd my-projectgit init- Tạo file
README.mdvới nội dung mô tả dự án git add README.mdgit commit -m "Initial commit: add README"
🧩 Parsons Problem
Bài 2: Chỉnh sửa file và kiểm tra trạng thái trước khi commit
Sắp xếp workflow đúng sau khi chỉnh sửa nhiều file:
- Chỉnh sửa
index.htmlvàstyle.css git status— kiểm tra file nào đã thay đổigit diff— xem chi tiết thay đổigit add index.html style.cssgit commit -m "Update layout and styling"git log --oneline— xác nhận commit thành công
Phần 3: Bài tập thực hành
Bài tập: Xây dựng lịch sử commit có ý nghĩa
Mục tiêu: Tạo một repository với 3 commit mạch lạc, mỗi commit đại diện cho một bước phát triển rõ ràng.
Các bước thực hiện:
- Tạo thư mục
todo-appvà khởi tạo Git repository - Commit 1 — Tạo
README.mdmô tả dự án, commit với message"feat: add project README" - Commit 2 — Tạo
index.htmlvới cấu trúc HTML cơ bản, commit với message"feat: add HTML skeleton" - Commit 3 — Tạo
.gitignoređể loại trừnode_modules/và.env, commit message"chore: add gitignore for node and env files" - Dùng
git log --onelinekiểm tra cả 3 commit vàgit log --statđể xem chi tiết
Mẹo
Commit message tốt nên theo format: <type>: <mô tả ngắn>. Các type phổ biến: feat, fix, chore, docs, refactor — quy ước Conventional Commits được dùng rộng rãi trong industry.