如何让 Git 将文件视为二进制文件?

有一个问题与一个中等规模的项目,其中视觉工作室的项目文件一直有问题,因为 git 处理他们作为文本和合并。我想只设置二进制文件,这样 git 就不会自动合并这些文件了。

有办法吗?

48638 次浏览

是的,使用 属性。在 .gitattributes文件中放入类似的内容(如果不存在则创建它) :

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

这里是 binary实际上是一个预定义的宏,相当于 -diff -merge -text

如果你想仍然能够看到差异,你可以使用:

*.sln -merge -text

这样,*.sln文件将不会被合并,没有 eol 规范化,但同时差异。

您应该在 .gitattributes文件中定义二进制文件属性(如果它不存在,则创建它) ,将这些行放入其中,以防止它将其作为文本 diff 文件处理:

# 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