Nếu bạn thêm file vào máy cục bộ rồi thử kéo bản sao từ xa của kho mà không thêm file đó vào kho, bạn sẽ gặp lỗi Git "nothing added to commit but untracked files present".
Hướng dẫn này thảo luận lỗi này có nghĩa là gì. Chúng ta sẽ đi qua hai giải pháp tiềm năng cho vấn đề này và ưu/nhược điểm của chúng.
nothing added to commit but untracked files present
Git là hệ thống kiểm soát phiên bản phân tán. Điều này có nghĩa là bạn có thể tạo bản sao cục bộ của kho và làm thay đổi của riêng bạn cho kho đó. Các thay đổi này không phản ánh trong dự án chính cho đến khi bạn commit chúng.
Khi bạn kéo mã từ server từ xa, hãy chắc chắn rằng tất cả file trên máy cục bộ là phần của khu vực chuẩn bị Git, hoặc phần của commit. Điều này là vì Git cần biết file nào là phần của kho.
Thực thi lệnh git pull trên kho nơi bạn chưa thêm mọi file vào khu vực chuẩn bị hoặc commit sẽ dẫn đến lỗi sau:
nothing added to commit but untracked files present
Untracked Files (File không được theo dõi): Khái quát
Untracked files là file bên trong dự án đã được cấu hình với Git, nhưng chưa trở thành phần của kho Git.
File chỉ trở thành phần của kho Git nếu bạn thêm chúng dùng lệnh "git add". Điều này cho phép bạn tạo và sửa file trên máy cục bộ không phải trở thành phần của dòng phát triển trong kho.
Untracked files nên hoặc được thêm vào dự án, hoặc bị bỏ qua dùng quy tắc trong file .gitignore.
Giải pháp
Có hai giải pháp tiềm năng cho lỗi này.
Giải pháp đầu tiên là thêm tất cả untracked files vào kho Git. Làm điều này dùng lệnh git add:
git add file_to_add.md
Điều này sẽ di chuyển file vào khu vực chuẩn bị. Khi bạn thêm file vào khu vực chuẩn bị, nó trở thành được theo dõi (tracked). Điều này là vì tất cả file trong khu vực chuẩn bị được thêm vào commit tiếp theo bạn tạo, trừ khi bị xóa. Git cần theo dõi file này để biết thêm vào commit.
Lựa chọn thứ hai là bỏ qua file bạn đã thêm vào kho. Lựa chọn này tốt nhất nếu bạn không muốn file bạn tạo trở thành phần của kho Git. Điều này phổ biến cho file cấu hình lưu API key hoặc thư mục lưu trữ dependency cục bộ.
Bạn có thể bỏ qua file bằng cách thêm mục vào file .gitignore trong dự án:
file_to_add.md directory/
Bạn có thể đặt file gitignore trong bất kỳ thư mục nào trong dự án. Tốt nhất giữ .gitignore ở thư mục gốc của kho để dễ truy cập. Tất cả quy tắc trong file .gitignore sẽ áp dụng đệ quy cho file và thư mục trong thư mục chứa file .gitignore.
Bây giờ chúng ta đã giải quyết lỗi, chúng ta có thể kéo phiên bản mới nhất của kho Git dùng lệnh git pull:
git pull
Lệnh này nên thành công vì chúng ta giờ theo dõi hoặc bỏ qua tất cả file trong thư mục dự án.
Kết luận
Lỗi "nothing added to commit but untracked files present" nảy sinh khi bạn tạo file mới trong bản sao cục bộ của kho và quên thêm vào khu vực chuẩn bị trước khi kéo phiên bản mới của kho.
Để sửa lỗi này, hoặc thêm file gây lỗi vào khu vực chuẩn bị hoặc bỏ qua chúng dùng file .gitignore. Bây giờ bạn có kiến thức cần thiết để sửa lỗi Git phổ biến này như chuyên gia.