Reputation: 7290
Having a problem with a medium sized project where visual studio project files keep having issues due to git treating them as text and merging. I'd like to just set the file as binary so that git won't auto merge these files ever.
Is there a way to do this?
Upvotes: 155
Views: 61262
Reputation: 1602
You should define binary file attributes in your .gitattributes
file (create it if it doesn't exist) by putting these lines in it, to prevent it to handle it as text diff file:
# 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
Upvotes: 15
Reputation: 26331
Yes, using attributes. Put something like this in your .gitattributes
file (create it if it doesn't exist):
*.sln binary
*.suo binary
*.vcxproj binary
Here binary
is actually a predefined macro, equivalent to -diff -merge -text
.
If you want to still be able to see the diff, you can use:
*.sln -merge -text
This way, the *.sln
files won't be merged, not have eol normalized, but meanwhile diff-able.
Upvotes: 196