Trong quá trình phát triển một dự án, hẳn các thành viên của team đã có những lúc đau đầu vì quá trình yêu cầu kéo liên tục xảy ra lỗi vì sự xung đột của các file biên dịch hoặc log… Vậy nên Gitignore được ra đời để giải quyết trường hợp này. Bản chất của Gitignore chính là “ignore”, tức là bỏ qua.
Nên dùng Gitignore cho những đối tượng nào?
Thực ra thì việc quyết định dùng Gitignore cho tệp tin nào còn tùy thuộc vào nhu cầu bản thân người dùng. Tuy nhiên, đây sẽ là những đối tượng hay được sử dụng nhất:
- Các file hệ thống
- Các file cấu hình
- Các phải phát sinh trong quá trình biên dịch
- File lưu trữ và tìm kiếm các module
- File văn bản và dữ liệu cá nhân
- Cơ sở dữ liệu và các file lưu log
Cú pháp
- Trong Gitignore không tồn tại cú pháp trống bởi file nào cũng chứa phần trống. Vì thế tác dụng của nó chỉ là phần cách cho dễ đọc thôi.
- Nếu muốn add thêm chú thích vào cú pháp, bạn có thể dùng # để mở đầu bình luận đó.
- Dấu chấm than “!” có nghĩa là phủ định. Do vậy nên nếu bạn thêm ! vào trước một file, nó sẽ không bị bỏ qua nữa mà được thêm vào lại.
- Hai dấu sao đúp “**” được dùng cho trường hợp không muốn hoặc không thể định rõ tên. Ví dụ nếu bạn sử dụng cú pháp **/abc, nó sẽ có hiệu lực với tất cả các file có chứa abc trong tên. Còn nếu bạn sử dụng dạng abc/** thì nó sẽ có hiệu lực với tất cả các tệp con trong thư mục abc.
Cách thức hoạt động của Gitignore
Cách thức hoạt động của Gitignore là khi bạn thêm một file vào Gitignore, Git sẽ không theo dõi file đó trong lịch sử phiên bản của dự án. Tuy nhiên, điều kiện đủ để Git bỏ qua một file là file đó không nằm trong git cache. Do đó, nếu một file đã được theo dõi trước đó và sau đó được thêm vào Gitignore, bạn cần sử dụng lệnh git rm --cached <file_name>
để xóa file đó khỏi git cache.
Bài viết khác
Return first
Return first là gì Khi trong hàm gặp một trường hợp đặc biệt (như lỗi, dữ liệu không hợp lệ…), ta trả về kết quả ngay lập tức và kết thúc hàm. Lợi ích khi dùng Return First trong Go Code gọn, dễ đọc Ít phải thụt dòng. Đọc từ trên xuống dưới như một […]
RabbitMQ
RabbitMQ là gì ? RabbitMQ là một hệ thống Message Broker, cho phép các thành phần trong hệ thống giao tiếp với nhau bằng cách gửi và nhận các tin nhắn thông qua các hàng đợi. Các thành phần chính trong RabbitMQ Producer là nơi gửi tin nhắn vào RabbitMQ (có thể là một api […]
Naming convention
Naming convention là gì? Naming Convention – là một tập hợp các tiêu chuẩn được quy định sẵn dùng để biểu thị cho các thành phần: tên biến, tên hàm, kiểu dữ liệu,… Phong cách đặt tên phổ biến 1. Camel Case Camel Case là kiểu đặt tên con lạc đà. Quy tắc: Chữ cái đầu tiên được viết […]
Seed Data(Goose)
Seed Data là gì? Seed data là tập hợp các cậu lệnh sql hoặc đoạn code để đưa dữ liệu ban đầu vào CSDL. Mục đích Khởi tạo hệ thống với dữ liệu mặc định. Tạo dữ liệu test nhanh chóng. Hỗ trợ kiểm thử tự động (unit test, integration test). Tạo môi trường demo cho […]
Migration
Migration là gì? Migration là một cơ chế cho phép quản lý các thay đổi cấu trúc của cơ sở dữ liệu thông qua các file chứa câu lệnh định nghĩa (SQL hoặc code). Như là tạo bảng mới, thêm, sửa, xóa, cột, thêm index, tạo quan hệ giữa bảng Ưu điểm Đồng bộ: Mọi […]
Ngôn ngữ lập trình Golang
Golang là gì? Go (hay còn gọi là Golang) là một ngôn ngữ lập trình được thiết kế dựa trên tư duy lập trình hệ thống. Go được phát triển bởi Robert Griesemer, Rob Pike và Ken Thompson tại Google vào năm 2007. Điểm mạnh của Go là bộ thu gom rác và hỗ trợ […]