Những nội dung chính
• Hiểu rõ Gitignore là gì và vai trò của nó trong dự án.
• Tìm hiểu cách Git áp dụng các quy tắc ignore.
• Khám phá lợi ích khi sử dụng .gitignore.
• Nắm được cú pháp phổ biến khi viết rule ignore.
• Biết các lưu ý quan trọng để tránh lỗi khi cấu hình.
Gitignore là gì?
Gitignore là một tệp văn bản đặc biệt thường được đặt ở thư mục gốc của repository nhằm khai báo các file hoặc thư mục mà Git cần bỏ qua trong quá trình theo dõi thay đổi.
Nhờ có .gitignore, bạn có thể ngăn Git quản lý những tệp không cần thiết như file log, thư mục cache, file build hoặc các tệp chứa dữ liệu nhạy cảm như API key hay biến môi trường.
Một số loại tệp thường được đưa vào .gitignore gồm:
• Thư mục thư viện như node_modules/
• File log như *.log
• File tạm như *.tmp
• Thư mục build như dist/, build/
• File cấu hình môi trường như .env

Gitignore hoạt động như thế nào?
Cơ chế hoạt động của .gitignore dựa trên việc Git liên tục so sánh đường dẫn file với các rule được định nghĩa trong tệp cấu hình.
Quá trình này thường diễn ra theo các bước sau:
Kiểm tra trạng thái file
Khi bạn chạy các lệnh Git như git status hoặc git add, Git sẽ quét thư mục làm việc để phát hiện sự thay đổi.
So khớp với rule ignore
Git sẽ đối chiếu từng file với các pattern được khai báo trong .gitignore.
Bỏ qua hoặc tiếp tục theo dõi
Nếu file khớp với một quy tắc ignore, Git sẽ bỏ qua file đó. Nếu không khớp rule nào, Git tiếp tục theo dõi bình thường.
Điểm quan trọng cần nhớ là .gitignore chỉ áp dụng cho những file chưa từng được Git theo dõi trước đó.
Nếu file đã được commit trước đây, thêm rule vào .gitignore sẽ không có tác dụng ngay.

Vì sao nên sử dụng Gitignore?
Sử dụng .gitignore gần như là tiêu chuẩn trong hầu hết các dự án phần mềm hiện đại.
Bảo vệ dữ liệu nhạy cảm
Các file như .env, secret key hoặc chuỗi kết nối database không nên bị đẩy lên remote repository.
.gitignore giúp tránh việc vô tình làm lộ thông tin quan trọng.
Giảm dung lượng repository
Các thư mục dependency hoặc build thường rất nặng. Loại bỏ chúng giúp repo nhẹ hơn và tăng tốc độ clone/pull.
Tránh xung đột môi trường cá nhân
Mỗi lập trình viên có thể dùng IDE hoặc hệ điều hành khác nhau.
Ví dụ:
• .DS_Store trên macOS
• .idea/ của IntelliJ IDEA
• .vscode/ của Visual Studio Code
Những file này thường không cần chia sẻ với team.
Hỗ trợ làm việc nhóm
Khi các file local không bị commit lên repo, nhóm phát triển sẽ dễ đồng bộ môi trường hơn và giảm xung đột không cần thiết.
Cách tạo và sử dụng file .gitignore
Cú pháp cơ bản
Git đọc file .gitignore từ trên xuống dưới và áp dụng từng quy tắc theo thứ tự.
Dấu
Dùng để ghi chú.
Ví dụ:
# Ignore log files
Git sẽ bỏ qua dòng comment này.
Dấu *
Ký tự đại diện cho mọi chuỗi.
Ví dụ:
*.log
Rule này bỏ qua toàn bộ file có đuôi .log.
Dấu /
Dùng để xác định đường dẫn cụ thể.
Ví dụ:
/build
Chỉ bỏ qua thư mục build ở root project.
Dấu !
Dùng để tạo ngoại lệ.
Ví dụ:
*.log
!important.log
Mọi file .log bị ignore ngoại trừ important.log.
Cách tạo file .gitignore
Bước 1: Tạo file
Tạo file tên:
.gitignore
và đặt tại thư mục gốc của repository.
Bước 2: Thêm rule
Ví dụ:
Bỏ qua thư mục:
node_modules/
dist/
.env
Bỏ qua file theo extension:
*.log
*.tmp
Bỏ qua file trong thư mục con:
/temp/*.log
Tạo ngoại lệ:
*.txt
!readme.txt
Bước 3: Commit file
Sau khi lưu file:
git add .gitignore
git commit -m "Add gitignore"
Sử dụng template .gitignore có sẵn
Bạn không nhất thiết phải tự viết toàn bộ .gitignore.
GitHub gitignore templates cung cấp rất nhiều template cho:
• Node.js
• Python
• Laravel
• Java
• Windows
• macOS
Bạn chỉ cần chọn template phù hợp rồi chỉnh sửa thêm theo nhu cầu.
Những file nào nên đưa vào .gitignore?
Tùy từng dự án, bạn nên cân nhắc ignore các nhóm sau:
Dependency
Ví dụ:
• node_modules/
• vendor/
File môi trường
Ví dụ:
• .env
• .config.local
File build
Ví dụ:
• /dist
• /build
• /out
File IDE và OS
Ví dụ:
• .idea/
• .vscode/
• .DS_Store
Một số lưu ý khi dùng Gitignore
Nên tạo từ sớm
Hãy cấu hình .gitignore ngay khi bắt đầu dự án để tránh việc repo bị “bẩn” bởi các file không cần thiết.
Xử lý Git cache nếu thêm muộn
Nếu file đã được Git track trước đó, bạn cần xóa cache:
git rm -r --cached .
git add .
Lệnh này chỉ xóa khỏi Git index, không xóa file trên máy.
.gitignore không xóa file đã commit
Các file từng commit vẫn nằm trong Git history.
Muốn dừng track một file:
git rm --cached <file>
Sau đó commit lại thay đổi.
Có thể dùng nhiều file .gitignore
Một repository hoàn toàn có thể chứa nhiều file .gitignore ở các thư mục con để quản lý rule riêng cho từng module.
