Nếu bạn sử dụng git trên nền tảng Mac, bạn có thể đã bắt gặp các tệp DS_Store trong kho lưu trữ git. Những điều này có thể gây khó chịu và làm lộn xộn kho git, thậm chí bạn có thể gặp phải các xung đột không cần thiết do các tệp.DS_Store được duy trì trong kho git, nơi bạn có thể thấy các thông báo lỗi như “Các tệp.DS_Store và.DS_Store có xung đột cây”. Bởi vì phần lớn các kho git không cần đến các tệp.DS_Store và thường có thể gây ra sự cố, nên việc xóa các tệp.DS_Store khỏi kho git là điều hợp lý.

Đầu tiên, nếu bạn đang thắc mắc tệp DS_Store là gì thì về cơ bản, đó là một tệp chứa siêu dữ liệu dành riêng cho thư mục trên máy Mac. Do đó, tệp.DS_Store bao gồm mọi thứ từ siêu dữ liệu về loại chế độ xem, kích thước tệp/thư mục, thông tin hình thu nhỏ, bố cục thư mục và bất kỳ tùy chỉnh cấp Finder nào đối với một thư mục cụ thể trên máy Mac. Vì các tệp.DS_Store có tiền tố là. trong tên tệp, chúng ẩn đối với Finder (làm cho chúng trở thành các tệp ẩn một cách hiệu quả), nhưng sẽ hiển thị trong dòng lệnh và với các công cụ dòng lệnh hoặc trình quản lý kho lưu trữ như git sẽ mặc định bao gồm mọi tệp đơn lẻ, bao gồm các tệp ẩn, trong một thư mục.

Mặc dù các tệp.DS_Store rõ ràng là hữu ích cho Finder, nhưng chúng không hữu ích khi có trong kho lưu trữ git. Hãy xem lại cách bạn có thể xóa tất cả các tệp DS_Store khỏi kho lưu trữ git và cách ngăn tệp lưu trữ đó trong kho lưu trữ git trong tương lai.

Cách xóa các tệp.DS_Store hiện có khỏi Kho lưu trữ Git

Mở Terminal và điều hướng đến thư mục git repo mà bạn muốn xóa các tệp.DS_Store Nhập chuỗi lệnh sau:

tìm.-tên.DS_Store-print0 | xargs-0 git rm-f–ignore-unmatch

Điều đó sẽ tìm các tệp.DS_Store và xóa chúng.

Nếu muốn tiến xa hơn, bạn thực sự có thể xóa tất cả DS_Store các tệp từ máy Mac bằng cách sử dụng một biến thể khác của lệnh find, nhưng hãy lưu ý rằng làm như vậy bạn sẽ mất bất kỳ và tất cả các tùy chỉnh thư mục và cửa sổ Finder, do đó, chúng tôi không đặc biệt khuyên bạn nên đi theo con đường đó.

Cách bỏ qua các tệp.DS_Store trong git

Bây giờ chúng ta hãy đi một bước xa hơn và ngăn git duy trì và cam kết các tệp DS_Store ngay từ đầu, thay vào đó, hãy bỏ qua chúng hoàn toàn. Điều này được thực hiện bằng cách sửa đổi (hoặc tạo) tệp.gitignore trong thư mục repo đang hoạt động:

echo.DS_Store >>.gitignore

Bây giờ, bạn sẽ muốn thêm.gitignore tệp vào kho lưu trữ của bạn và thực hiện thay đổi.

git add.gitignore

git commit-m’Bỏ qua các tệp.DS_Store’

Đối với giá trị của nó, không chỉ git mới có thể gặp sự cố với việc tạo hoặc lộn xộn tệp.DS_Store hoặc có thể có lợi nếu bỏ qua chúng, bạn cũng có thể loại trừ các tệp DS_Store khỏi kho lưu trữ zip được tạo trên máy Mac, điều này có thể hữu ích để giảm sự lộn xộn (và ngăn không cho siêu dữ liệu cụ thể của máy) được lưu trong tệp zip. Và bạn có thể thấy rằng các tệp.DS_Store không phù hợp với môi trường mạng nhưng lệnh mặc định có thể ngăn việc tạo tệp DS_Store cho các ổ đĩa mạng nếu cần.

Liên quan

Categories: IT Info