2015-07-21 13 views
14

Tôi đã cố gắng thêm này đến .gitattributes:Làm cách nào để Git hiển thị các thay đổi đối với tệp .sql của tôi?

* text=auto 
*.sql diff 

Nhưng nó vẫn cho thấy như thế này:

BIN  WebRole/Sql/Objects/dbo.Content.Table.sql → 
WebRole/Sql/dbo.Content.Table.sql Binary file not shown 

Sẽ đánh giá cao sự giúp đỡ với điều này.

+3

Bạn có thực sự có vốn 'A' trong chính tả của tệp .gitAttributes của bạn không. Điều này có thể tạo sự khác biệt trên hệ thống tệp phân biệt chữ hoa chữ thường. Git thường đánh vần tên tập tin này là '.gitattributes'. – Wolf

+1

Tôi nghĩ bạn có nghĩa là Git, không phải GitHub, đúng không? – bitoiu

+0

Tôi đang sử dụng Git nhưng đó là màn hình GitHub đang hiển thị cho tôi thông báo ở trên. –

Trả lời

4

Git thường đoán chính xác liệu một đốm màu có chứa văn bản hoặc dữ liệu nhị phân hay không bằng cách kiểm tra phần đầu của nội dung. Tuy nhiên, trong trường hợp của bạn, git bị nhầm lẫn và xử lý tệp dưới dạng nhị phân, có thể do dữ liệu nhị phân ở đâu đó trong tệp.

Từ manpage git-diff:

-a, --text 
     Treat all files as text. 

Vì vậy, bạn vẫn có thể nhận được diff văn bản khá dễ dàng như sau:

git diff -a WebRole/Sql/Objects/dbo.Content.Table.sql 

Để ghi đè git sai đoán thêm như sau .gitattributes trong cùng thư mục với tệp:

* .sql diff

và cam kết tệp này. Điều này sẽ buộc git để xử lý mọi tập tin .sql như văn bản từ bây giờ, thời tiết hay không nó chứa dữ liệu nhị phân.

6

GitHub rất có thể quyết định cách nó quản lý sự khác biệt của nó (ví dụ, chúng có sự khác biệt tùy chỉnh cho 3D renderings, maps hoặc images).

GitHub support sẽ có thể nói chính xác cách thức các tệp .sql được xử lý và phân biệt.

Nhưng hãy kiểm tra mã hóa của tệp sql trong repo GitHub của bạn.
Như tôi đã đề cập trong "Why does git think my cs file is binary?", tệp UTF-16 có thể có vấn đề.
Đảm bảo ít nhất tệp sql nằm trong UTF-8.

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