Chào các bạn đã đến với chủ đề tiếp theo của mình. Ở chủ đề này, mình sẽ tiếp tục giới thiệu đến các bạn cách để bỏ qua những file mà mình không bao giờ muốn push lên remote server. Ví dụ như khi bạn dùng IntelliJ hay Eclipse để chạy script. Khi chạy, nó sẽ tự động tạo ra những file .class. Hoặc đơn giãn hơn là bạn tạo ra file test.txt để test. Những file này mình chủ yếu để ở máy local chứ không cần push lên remote server. Vì vậy, lúc này mình cần ignore nó. Với git, mình sẽ config nó ở trong file .gitignore. Nào bây giờ chúng ta sẽ đi vào nội dung chính của chủ đề ngày hôm nay nhé.
Nội dung
1. Git Ignore là gì?
Giả sử bạn đang làm trong một project lớn, có rất nhiều thư mục và file. Trong quá trình bạn develop, có thể sẽ sinh ra những file rác. Ví dụ như log file, hoặc như trong ví dụ ở trên, trong Java, các IDE sẽ tự đông sinh ra những file .class. Những file này không cần thiết để push lên remote server. Vậy làm thế nào để mình có thể bỏ qua nó khi làm việc với GIT? Để giải quyết vấn đề này, Git cung cấp cho chúng ta một cơ chế “bỏ qua” bằng cách sử dụng file .gitignore.
Cách thực hiện Git ignore khá đơn giãn, các bạn hãy làm theo các bước sau nhé:
- Tạo file text có tên là .gitignore và để trong thư mục repository
- Liệt kê tất cả các file/folder mà bạn không muốn commit vào trong file này
- Add file .gitignore vào vùng staging (git add)
2. Ví dụ về cách sử dụng Git Ignore
Chúng ta sẽ đi vào ví dụ cụ thể như sau:
Bước 1: Clone code từ remote repo về máy local. Giả sử trong repo của mình hiện tại chỉ có file test.txt
Bước 2: Bây giờ, bạn tạo thêm 1 số file nữa. ví dụ như: test1.txt, test2.txt, test3.txt, test4.txt, test5.txt và 1 file ignore.txt. Ở đây, bạn chỉ cần tạo file, ko cần input nội dung nhé.
Hãy thử dùng lệnh git status để kiểm tra xem thế nào?
Lúc này, bạn sẽ thấy tất cả những file mình đã tạo ra ở trên được liệt kê ở đây với dòng highlight màu đỏ.
Giả sử bạn muốn bỏ qua file ignore.txt, thì phải làm thế nào? Hãy qua bước tiếp theo nhé.
Bước 3: Tạo thêm file plaintext với tên gọi .gitignore, và để file này trong cùng folder trên.
Bước 4: Mở file .gitignore bằng notepad hoặc notepadd++, input tên file ignore.txt vào file này.
Bây giờ hãy thử dùng lệnh git status để kiểm tra xem thế nào nhé?
Các bạn có thể thấy rằng, trong hình trên, file ignore.txt đã không con xuất hiện trong danh sách “Untracked file” nữa. Git sẽ coi như không có sự tồn tại của file này trong bất kỳ hoạt động nào của mình. Đây chính ta tác dụng của git ignore.
Nếu bạn có nhiều file cần bỏ qua, thì bạn hãy lần lượt input tên mỗi file trên từng dòng một. Mỗi dòng trong file gitignore được gọi là 1 rule.
3. Lưu ý khi sử dụng Git Ignore
Nếu file .gitignore nằm trực tiếp trong repository thì nó sẽ tác động lên tất cả các file trong repository. Đây là trường hợp sử dụng git ignore chúng ta đã làm quen ở ví dụ trên.
File .gitignore cũng có thể đặt trong thư mục con của repository. Tuy nhiên, lúc này nó chỉ có tác động lên các file nằm bên trong thư mục này.
Bạn có thể đặt một file .gitignore trong mỗi thư mục con. Tuy nhiên đây là cách làm không được khuyến khích.
Bạn có thể ignore cả thư mục, thay vì từng file riêng rẽ. Để ignore cả thư mục, bạn chỉ việc đưa tên thư mục tương ứng vào một dòng trong file ignore, giống như khi thực hiện với file.
Trên thực tế, nếu bạn viết dòng “build” trong .gitignore, Git sẽ hiểu “build” có thể là tên file, có thể là tên thư mục. Nếu “build” là tên thư mục, Git sẽ bỏ qua cả thư mục build và tất cả các file bên trong. Nếu build là một file, Git sẽ bỏ qua file này.
Để chỉ định rõ một thư mục, Git yêu cầu viết ký tự “/” ở sau tên thử mục. Ví dụ “build/” sẽ được Git hiểu là một thư mục. Khi này Git sẽ bỏ qua tất cả các file trong thư mục “build”.
Nếu cần bỏ qua nhiều file/thư mục, bạn lần lượt viết tên mỗi file/thư mục trên một dòng. Mỗi dòng trong gitignore được gọi là một rule
Để chỉ định nhóm file cần bỏ qua, bạn có thể sử dụng wildcard. Ví dụ, nếu muốn yêu cầu bỏ qua tất cả các file exe, bạn có thể input *.exe. . Nếu muốn yêu cầu bỏ qua tất cả các file bắt đầu bằng temp, bạn có thể input temp*
Bạn có thể kết hợp chỉ định nhóm file và thư mục. Ví dụ, nếu muốn yêu cầu bỏ qua các file exe trong thư mục bin (trong dự án C# .NET) bạn có thể input bin/*.exe
Bạn cũng có thể viết 1 description (ghi chú) cho một rule bằng cách đặt ký tự # ở đầu dòng.
Ví dụ:
Và điều cuối cùng là, khi bạn đã define xong các rule, bạn nên push nó lên remote resository nhé. Nó sẽ apply cho toàn bộ project mà bạn đang làm.
4. Lời kết
Tới đây thì mình xin kết thúc nội dung của bài hôm nay. Hy vọng qua bài viết này, các bạn sẽ sử dụng file git ignore này 1 cách thành thạo và áp dụng vào project của mình. Hẹn gặp lại cái bạn ở chủ đề tiếp theo. Bái bai. Chúc các bạn thành công.