2012-06-22 31 views
55

Có sự cố với dự án có kích thước trung bình, nơi tệp dự án studio trực quan tiếp tục gặp sự cố do git coi chúng là văn bản và hợp nhất. Tôi chỉ muốn thiết lập các tập tin như nhị phân để git sẽ không tự động hợp nhất các tập tin này bao giờ hết.Làm cách nào để Git xử lý tệp dưới dạng nhị phân?

Có cách nào để thực hiện việc này không?

+2

Nhưng trực quan Các tệp dự án Studio là các tệp văn bản và cần phải được hợp nhất không? –

+0

@CharlesBailey Họ sẽ định kỳ hợp nhất theo cách tồi tệ nhất có thể, vặn tất cả các bản dựng của bạn. Tôi không muốn fiddle với XML, tôi muốn nó để yêu cầu tôi tự thêm các tập tin mới hoặc thậm chí có thể chạy một công cụ XML-diffing biết làm thế nào để xử lý đúng cách. –

+0

@ michael.bartnett: Chỉ khi bạn làm hỏng việc hợp nhất, chắc chắn? –

Trả lời

77

Có, sử dụng attributes. Đặt một cái gì đó như thế này trong tập tin .gitattributes của bạn (tạo ra nó nếu nó không tồn tại):

*.sln binary 
*.suo binary 
*.vcxproj binary 

Đây binary is actually a predefined macro, tương đương với -diff -merge -text.

Nếu bạn muốn vẫn có thể xem các diff, bạn có thể sử dụng:

*.sln -merge -text 

Bằng cách này, *.sln file sẽ không được sáp nhập, không có eol bình thường, nhưng khi đó diff-thể.

+1

tệp này ở đâu? – neves

+0

@neves Ở mọi nơi, có thể định vị tệp gitignore, theo tài liệu được cung cấp bởi liên kết trong câu trả lời đã cho. –

+0

@neves: bạn phải tạo một tài khoản, tại địa phương trong repo của bạn hoặc trên toàn cầu, ví dụ: '~/.gitattributes' và sau đó chạy' git config --global core.attributesfile ~/.gitattributes' xem http://stackoverflow.com/questions/28026767/where-should-i-place-my-global-gitattributes -tập tin –

2

Bạn nên xác định các thuộc tính tập tin nhị phân trong tập tin .gitattributes của bạn (tạo ra nó nếu nó không tồn tại) bằng cách đặt những dòng này trong nó, để ngăn chặn nó để xử lý nó như file văn bản khác:

# Define binary file attributes. 
# - Do not treat them as text. 
# - Include binary diff in patches instead of "binary files differ." 
*.sln  -text diff 
*.suo  -text diff 
*.vcxproj -text diff 
*.gif  -text diff 
*.gz  -text diff 
*.ico  -text diff 
*.jpeg -text diff 
Các vấn đề liên quan