2013-05-25 31 views
10

Tôi đang cố gắng xem các thay đổi cho một tệp không được tổ chức.Điều gì có nghĩa là khi Git diff hiển thị thay đổi chế độ?

đầu tiên tôi sử dụng git status để xem tất cả thay đổi unstaged
Sau đó, ví dụ:

git diff AndroidManifest.xml 

Nhưng tôi nhận được kết quả này

diff --git a/AndroidManifest.xml b/AndroidManifest.xml 
old mode 100755 
new mode 100644 

gì đó có ý nghĩa và làm thế nào tôi có thể xem các thay đổi cho cụ thể file

Trả lời

10

Có lẽ, nội dung của tập tin này không thay đổi, chỉ có bit thực thi được xóa. Hãy thử thực sự thay đổi tệp bằng cách thêm dòng trống vào tệp và xem kết quả đầu ra là gì git diff.

Ngoài nội dung tệp, Git cũng ghi lại trạng thái của bit thực thi cho mỗi tệp. Nó có ý nghĩa trên các hệ thống Linux nếu bạn muốn các tập lệnh có thể thực thi ngay sau khi thanh toán. Xem thêm hai câu hỏi liên quan sau đây:

How do I make Git ignore file mode (chmod) changes?

How do I remove files saying "old mode 100755 new mode 100644" from unstaged changes in Git?

+0

Có bạn đã đúng, tôi đã thay đổi thành tệp và giờ đây nó hiển thị sự khác biệt. Cảm ơn – pedja

+0

Liên kết đến http://gitfilemodeisannoying.com/ hiện đã bị hỏng – Polygnome

8

Nó có nghĩa là chế độ tập tin thay đổi 755-644, nhưng nội dung không thay đổi.

git diff chính xác là những gì bạn đang tìm kiếm - nó hiển thị các thay đổi từ các tệp chưa được chuyển đến lần commit cuối cùng. git diff --cached dành cho các tệp được dàn dựng.

+0

Thú vị! điều này có ý nghĩa rất nhiều – KhaledMohamedP

+1

Tôi có thể tránh thay đổi chế độ tệp này không? – ManuelSchneid3r

+1

@ ManuelSchneid3r Chắc chắn, tất nhiên rồi. Git không thay đổi chế độ tập tin, nó chỉ theo dõi sự thay đổi chế độ đã xảy ra. Hoặc chỉ cần thay đổi nó trở về chế độ ban đầu của nó hoặc không thay đổi nó ở nơi đầu tiên. – Polygnome

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