Gitignore là gì? Vì sao nên sử dụng .gitignore trong dự án Git?

Chia sẻ

Bạn là developer, chắc chắn đã và đang làm việc với Git – công cụ quản lý phiên bản. Trong quá trình viết code, bạn sẽ thấy rằng không phải tất cả các file trong dự án đều cần được theo dõi và lưu trữ trên Git.

Một số file như node_modules.envdist.DS_Store,… thường không nhất thiết phải đẩy lên Git. Đây cũng chính là lý do mà .gitignore ra đời.

1. Gitignore là gì?

Trước khi đi sâu vào .gitignore, mình sẽ nói sơ qua về Git để các bạn có thể dễ dàng hình dung hơn.

Các developer sử dụng Git để theo dõi sự thay đổi của code. Mọi thay đổi trong code đều được lưu lại thành các “commit” giúp bạn dễ dàng quay lại các phiên bản trước đó, tăng khả năng làm việc nhóm hiệu quả hơn khi quản lý các nhánh (branch) khác nhau.

.gitignore là file đơn giản nằm trong thư mục gốc của dự án Git, dùng để chỉ định các file hoặc là folder mà bạn muốn Git không theo dõi, không lưu repository. Điều này giúp kho Git gọn gàng và giảm thiểu khả năng lưu các tệp không cần thiết, chứa các thông tin nhạy cảm như mật khẩu, secret-key.

Ví dụ, trong quá trình build, dự án có các tệp như:

  • File cấu hình IDE (Visual Studio Code, JetBrains,…)
  • Folder node_modules trong các dự án Nodejs
  • File tạm thời (*.tmp, *.log)
  • File cache hoặc build (dist/, build/)

Để tránh việc vô tình thêm những file này vào Git, bạn chỉ cần định nghĩa nó trong tệp .gitignore.

2. Lợi ích của việc sử dụng .gitignore

2.1 Giảm dung lượng file lưu trữ trên Git

Trong dự án, số lượng các file do công cụ phát triển sinh ra có thể rất lớn. Sử dụng .gitignore giúp bạn giảm thiểu số lượng file mà Git phải quản lý, từ đó giúp kho lưu trữ của bạn nhẹ hơn, nhanh hơn, và dễ quản lý hơn.

2.2 Tránh lưu trữ thông tin nhạy cảm

Một trong những nguy cơ lớn nhất khi làm việc với Git là việc vô tình push các file chứa thông tin nhạy cảm lên kho lưu trữ công khai. Ví dụ như file chứa mật khẩu, secret-key, các thông tin cá nhân khác. Bạn nên định nghĩa những file này trong .gitignore để giảm thiểu nguy cơ rò rỉ thông tin không mong muốn.

2.3 Quá trình hợp tác nhóm dễ dàng hơn

Trên thực tế, khi bạn làm việc trong một nhóm, không phải tất cả các thành viên trong team đều sử dụng cùng OS (hệ điều hành), IDE, các công cụ phát triển, các file cấu hình để kết nối database.

Thay vì đẩy tất cả những file đó lên Git, bạn có thể liệt kê trong .gitignore để chỉ ra các file không cần theo dõi.

3. Hướng dẫn cách tạo và sử dụng .gitignore

3.1 Tạo file .gitignore

Để tạo file .gitignore, bạn chỉ cần tạo file có tên là .gitignore trong folder gốc của dự án Git.

3.2 Cú pháp trong .gitignore

Cú pháp của .gitignore rất đơn giản. Dưới đây là một vài quy tắc cơ bản hay sử dụng nhất.

  • Bỏ qua toàn bộ file hoặc folder: chỉ cần viết tên file hoặc folder mà bạn muốn bỏ qua.
node_modules/
dist/
.env

Với ví dụ trên, Git sẽ bỏ qua, không theo dõi 2 folder node_modules/dist/ và file .env

  • Bỏ qua tất cả các file có phần mở rộng: sử dụng dấu sao * để đại diện cho mọi ký tự.
*.log
*.tmp

Tất cả các file có phần mở rộng là .log và .tmp sẽ được bỏ qua.

  • Bỏ qua tất cả các file trong folder con: sử dụng dấu gạch chéo / để xác định rõ folder hoặc file trong folder con.
/temp/*.log

Với dòng này sẽ chỉ bỏ qua các file .log trong folder temp/, mà không bỏ qua các file .log ở ngoài folder này.

  • Loại trừ file cụ thể: đôi lúc bạn chỉ muốn bỏ qua toàn bộ folder hoặc phần mở rộng, nhưng vẫn muốn Git theo dõi một file cụ thể trong đó. Bạn có thể sử dụng dấu chấm than !.
*.log
!important.log

Dòng phía trên sẽ bỏ qua tất cả các file .log, trừ file important.log.

3.3 Sử dụng các mẫu sẵn file .gitignore từ Github

GitHub cung cấp một kho các file .gitignore mẫu cho nhiều ngôn ngữ và các môi trường khác nhau.

4. Một số lưu ý khi sử dụng .gitignore

4.1 .gitignore không áp dụng cho các tệp đã được thêm vào Git

Một điều quan trọng cần lưu ý là .gitignore chỉ có tác dụng với các tệp chưa được Git theo dõi. Nếu bạn đã commit tệp đó trước khi thêm nó vào .gitignore, Git vẫn sẽ tiếp tục theo dõi tệp đó.

Để xóa file khỏi Git nhưng vẫn giữ nó trong folder làm việc, bạn có thể sử dụng lệnh:

git rm --cached <file>

4.2 Sử dụng nhiều .gitignore trong cùng một dự án

Bạn có thể tạo nhiều file .gitignore trong cùng dự án, ở các folder khác nhau. Mỗi file .gitignore sẽ chỉ ảnh hưởng đến folder nơi mà nó được đặt và các folder con. Điều này có thể rất hữu ích nếu bạn có các folder chứa những dữ liệu tạm thời hoặc build các phần khác nhau của dự án.

Chắc sẽ hơi khó hiểu chút, mình sẽ ví dụ đơn giản thế này. Nếu bạn có một folder assets/ trong đó chứa các file tạm thời, bạn có thể tạo file .gitignore chỉ cho folder đó như thế này:

assets/.gitignore

5. Tổng kết

File .gitignore giúp bạn quản lý các file chứa thông tin nhạy cảm, không cần thiết trong dự án Git của mình. Bằng cách cấu hình .gitignore một cách hợp lý, bạn có thể giữ kho lưu trữ Git của mình gọn gàng, hiệu quả và an toàn hơn.

Việc hiểu và sử dụng .gitignore không chỉ giúp bạn làm việc hiệu quả, mà còn giảm thiểu những rủi ro về rò rỉ thông tin nhạy cảm.