2016-04-01 16 views
8

Tôi đã làm việc trên một dự án và chỉnh sửa một loạt các tệp trong một thư mục. Thư mục này nằm trên GIT cục bộ của tôi và không được GIT xem. Tôi thường sao chép toàn bộ thư mục vào một máy tính khác được GIT theo dõi để được đẩy tới repo. Vấn đề bây giờ là một loạt các tập tin đang được hiển thị như thay đổi do kết thúc dòng và không gian được hiển thị, vì nó đang được sao chép từ cửa sổ vào một hộp linux.Có cách nào trong GIT, để xóa các tệp đã bị thay đổi không nếu nó có ít hơn 2 ký tự thay đổi?

Tôi đã thực hiện lệnh sau: git diff --stat để hiển thị tất cả các tệp đã thay đổi khi số dòng/ký tự thay đổi.

enter image description here

Như bạn có thể thấy rất nhiều các tập tin có không thay đổi được thực hiện đối với họ. Tuy nhiên, chúng vẫn hiển thị trong phần git trạng thái sửa đổi của tôi.

Làm cách nào để xóa hoặc hoàn nguyên những điều này trở lại bình thường vì tôi chưa bao giờ thay đổi bất kỳ thứ gì với những tệp này?

+2

Câu hỏi tốt hơn là làm thế nào để bạn nhận được git để bỏ qua những thay đổi dòng mới. [Đây là tài liệu Github về điều đó] (https://help.github.com/articles/dealing-with-line-endings/). – Schwern

+0

Cảm ơn bạn đã làm rõ. Đó có phải là thủ phạm gây ra vấn đề này không? –

+2

Có thể trùng lặp của [trạng thái Git bỏ qua dòng kết thúc/tệp/cửa sổ giống hệt nhau và môi trường linux/dropbox/mled] (http://stackoverflow.com/questions/20496084/git-status-ignore-line-endings-identical-files- windows-linux-environment) –

Trả lời

1

Tôi nghĩ có nhiều khả năng những tệp này sẽ hiển thị do thay đổi chế độ. Hãy thử chạy git diff trên một trong số chúng. Bạn có thấy một cái gì đó như thế này?

$ git diff query.viewport.js 
diff --git a/query.viewport.js b/query.viewport.js 
old mode 100644 
new mode 100755 

Nếu vậy, sau đó bạn có thể có thể giải quyết việc này với một cái gì đó như:

$ find modules/hotsite/ -type f -print0 | xargs -0 chmod -x 
5

Kiểm tra cấu hình của bạn trên đích Git repo mà bạn sao chép các tệp đó.

git config core.autocrlf 

Đảm bảo đặt thành false: git config core.autocrlf false (see more here).

Sau đó kiểm tra lại sự hiện diện và nội dung của các tệp .gitattributes. Chúng cũng có thể ảnh hưởng đến eol cũng như với core.eol directives.

Các vấn đề liên quan