Trình tạo .gitignore

Tiếp theo

Thiếu .gitignore chính là lý do các khóa API lọt vào lịch sử Git và 400 MB node_modules bị đẩy lên GitHub. Trình tạo này xuất ra một mẫu đã được kiểm thử cho stack của bạn, Node, Python, Rails hoặc Laravel, với các thư mục phụ thuộc, kết quả build và tệp môi trường đã được loại trừ sẵn.

Cách tạo tệp .gitignore

  1. 1

    Chọn stack của bạn

    Node, Python, Rails hay Laravel, mỗi stack có tập tệp tạm thời riêng.

  2. 2

    Tạo

    Công cụ hợp nhất các quy tắc chung (.DS_Store, .env, node_modules) với các quy tắc riêng của từng stack.

  3. 3

    Lưu thành .gitignore

    Đặt tệp vào thư mục gốc của repo trước lần commit đầu tiên.

  4. 4

    Commit tệp đó

    Bản thân tệp .gitignore cũng nên được theo dõi, nó là một phần của dự án, không phải tùy chọn cục bộ.

Vì sao khối chung luôn hiện diện

Quy tắc Lý do bỏ qua
.DS_Store Siêu dữ liệu của Finder trên macOS, không bao giờ hữu ích cho máy khác
.env Bí mật: khóa API, mật khẩu cơ sở dữ liệu, thông tin xác thực OAuth
.env.* Biến thể theo môi trường (staging, production)
!.env.example Nhưng hãy giữ tệp ví dụ để cộng tác viên mới biết cấu trúc
node_modules/ Có thể cài lại từ package.json; dung lượng lớn và phụ thuộc nền tảng

Bổ sung riêng cho từng stack

Stack Bổ sung chính
Node dist/, coverage/, npm-debug.log*
Python __pycache__/, .venv/, *.pyc, .pytest_cache/
Rails log/*, tmp/*, storage/*, /public/assets
Laravel vendor/, /storage/*.key, /public/build, .phpunit.cache/

Các lỗi thường gặp

  • Commit .env quá sớm, rồi mới thêm vào .gitignore. Tệp đã nằm trong lịch sử, hãy dùng git rm --cached .env và xoay lại (rotate) mọi bí mật từng có trong đó.
  • Bỏ qua .env.example cùng với .env. Đồng đội cần tệp ví dụ để khởi tạo dự án.
  • Mẫu quá rộng: *.log có thể che mất các cấu hình log quan trọng cho production; khi nghi ngờ hãy chỉ định cụ thể hơn.
  • Tệp riêng của nền tảng nhưng không chỉ của riêng bạn: hãy đóng góp chúng qua .gitignore dùng chung, chứ không phải tệp cá nhân.

gitignore cá nhân so với gitignore của dự án

Với các tệp trình soạn thảo chỉ của riêng bạn (IDE JetBrains, Emacs), hãy dùng gitignore toàn cục (~/.config/git/ignore) thay vì làm phình to từng dự án.

Câu hỏi thường gặp

Vì .gitignore chỉ ngăn thêm các tệp chưa được theo dõi. Hãy chạy git rm --cached path/to/file để ngừng theo dõi một tệp đã commit, commit thay đổi đó, và sau đó quy tắc sẽ loại trừ nó.

Không, nên commit các tệp lock để mọi môi trường cài đúng cùng một phiên bản. Bỏ qua chúng sẽ làm quay lại loại lỗi “chạy tốt trên máy của tôi”.

Dấu gạch chéo ở đầu neo mẫu vào thư mục gốc của repo. /logs chỉ khớp thư mục logs/ ở cấp cao nhất, trong khi logs khớp với bất kỳ thư mục logs nào ở mọi độ sâu.

Không. Tệp được tạo không được lưu trữ hay theo dõi. Lựa chọn stack của bạn được gửi đến máy chủ của chúng tôi để tạo quy tắc và ở chế độ nhiều bước cũng nằm trong liên kết trang, nhưng nội dung tệp không được lưu lại.

Công cụ liên quan

Công cụ này có phiên bản bằng các ngôn ngữ khác