HTML và Git Git cơ bản
[Bài đọc] Hệ thống quản trị phiên bản (Git)
1. Mục tiêu của bài đọc
Hiểu được nguyên lý cốt lõi của hệ thống quản trị phiên bản (Git) thông qua khái niệm "Snapshot" (Ảnh chụp nhanh).
Thực hiện được quy trình Snapshot và xây dựng chiến lược lưu trữ lịch sử thay đổi (Commit Strategy) khoa học, rõ ràng và dễ bảo trì khi làm việc nhóm.
2. Giới thiệu: "Cỗ máy thời gian" của Lập trình viên
Nếu bạn từng lưu file Word làm đồ án theo kiểu: BaoCao.docx, BaoCao_final.docx, BaoCao_final_sua_lan_cuoi.docx... thì xin chúc mừng, bạn đã thực hành quản lý phiên bản một cách thủ công (và vô cùng rủi ro).
Trong quá trình viết code, rủi ro luôn rình rập: Bạn xóa nhầm một đoạn code quan trọng, hay thêm một tính năng mới làm hỏng toàn bộ trang web. Sẽ thật tuyệt nếu bạn có một "cỗ máy thời gian", giúp bạn quay ngược lại đúng cái ngày trước khi bạn mắc lỗi.
Hệ thống Quản lý phiên bản (như Git) chính là cỗ máy thời gian đó. Mỗi khi hoàn thành một phần công việc tốt, bạn "chụp" lại một bức ảnh lịch sử. Nếu ngày mai mọi thứ đổ vỡ, bạn chỉ cần quay về đúng bức ảnh của ngày hôm qua.
3. Khái niệm cốt lõi: Snapshot và Commit
Snapshot (Ảnh chụp nhanh): Đây là cách Git lưu trữ dữ liệu. Khác với việc chỉ lưu lại những dòng code bị sửa, Git "chụp" lại toàn bộ trạng thái của thư mục dự án tại thời điểm đó.
Commit: Một điểm lưu (checkpoint) cụ thể trong lịch sử dự án, luôn đi kèm với một đoạn thông điệp (message) ngắn gọn để giải thích rõ ràng bạn vừa làm gì ở bức ảnh này.
Điền vào chỗ trống:
4. Cơ chế hoạt động và Chiến lược Commit (Commit Strategy)
Cơ chế Snapshot diễn ra cực kỳ thông minh: Khi bạn ra lệnh lưu (commit), Git giống như một chiếc máy ảnh. Điểm tối ưu là: Nếu một file không có sự thay đổi nào so với bức ảnh trước đó, Git sẽ không lưu lại file đó nữa mà chỉ tạo một liên kết (link) trỏ về bức ảnh cũ để tiết kiệm dung lượng. Nhờ vậy, Git cực kỳ nhẹ và nhanh.
Chiến lược lưu trữ (Commit Strategy):
Một dự án chuyên nghiệp cần một lịch sử thay đổi "sạch sẽ" và dễ đọc. Để làm được điều đó, bạn phải tuân thủ 2 quy tắc sinh tồn:
Quy tắc 1 - Commit nhỏ và nguyên tử (Atomic Commits): Mỗi commit chỉ nên chứa MỘT thay đổi có ý nghĩa (ví dụ: "Thêm menu điều hướng", "Sửa lỗi nút đăng nhập"). Tuyệt đối không gom chung việc "Thiết kế trang chủ" và "Sửa lỗi database" vào cùng một commit.
Quy tắc 2 - Viết thông điệp (Commit Message) ý nghĩa: Đừng bao giờ lưu commit với nội dung là update, fix bug, hay asdfgh. Hãy dùng động từ nguyên thể và mô tả thẳng vào mục đích.
Những hành động nào sau đây đúng với một chiến lược commit tốt?
5. Ví dụ minh họa: Các tình huống "chụp ảnh" thực tế
Quy trình của Git luôn cần 2 bước cơ bản: Đưa lên bàn chụp (add) và bấm máy (commit). Dưới đây là cách áp dụng trong các tình huống thực tế:
Tình huống 1: Xây dựng tính năng theo từng bước
Bạn đang làm trang chủ. Thay vì làm xong tất cả mới lưu, bạn nên chia nhỏ:
Bash
# Lần 1: Sau khi code xong phần Khung HTML
git add index.html
git commit -m "Thêm khung giao diện HTML cho trang chủ"
# Lần 2: Viết tiếp file CSS để làm đẹp trang
git add style.css
git commit -m "Thêm màu sắc và bố cục CSS cho trang chủ"Lợi ích: Nếu sếp bảo "Màu này xấu quá, xóa CSS đi", bạn chỉ cần hủy bức ảnh Lần 2 mà không làm mất khung HTML đã dựng ở Lần 1.
Tình huống 2: Sửa một lỗi (Fix bug) đột xuất
Đang làm việc, bạn phát hiện nút "Đăng nhập" bị sai màu. Bạn sửa nó ngay lập tức.
Bash
# Chỉ add file chứa lỗi vừa sửa
git add style.css
git commit -m "Sửa lỗi màu nền của nút Đăng nhập"Lợi ích: Lịch sử commit sẽ báo cho cả team biết chính xác bạn vừa giải quyết vấn đề gì, thay vì một dòng chữ vô nghĩa như "đã sửa lỗi".
Tình huống 3: Tách biệt thay đổi (Minh họa quy tắc Commit nguyên tử)
Giả sử bạn vừa làm xong 2 việc cùng lúc: Cập nhật thông tin ở Header và sửa lỗi chính tả ở Footer. Đừng gom chung chúng lại! Hãy tách ra làm 2 bức ảnh:
Bash
# Lưu bức ảnh thứ nhất cho Header
git add header.html
git commit -m "Cập nhật logo mới trên Header"
# Lưu bức ảnh thứ hai cho Footer
git add footer.html
git commit -m "Sửa lỗi sai chính tả ở phần Footer"Lợi ích: Lịch sử dự án của bạn cực kỳ rõ ràng, mạch lạc, đúng chuẩn của một Lập trình viên chuyên nghiệp.
6. Những lỗi sai "chết người" cần tránh
Tạo ra các Commit "rác": Code đang hỏng tung tóe, chưa chạy được nhưng đến giờ đi ngủ nên bạn vẫn ấn git commit. Hãy nhớ: Chỉ commit khi đoạn code đó đã hoàn thiện một chức năng nhỏ hoặc sửa xong một lỗi cụ thể.
Quên lệnh git add: Rất nhiều bạn vừa code xong liền gõ ngay git commit. Git sẽ báo lỗi. Bạn phải dùng git add để chọn những file muốn "chụp", sau đó mới commit để chốt bức ảnh.
Điền vào chỗ trống: