为什么 Git 将此文本文件视为二进制文件?

问题描述

它只是意味着当 git 检查文件的实际内容时(它不 知道 任何给定的扩展名不是二进制文件 - 如果你想明确地告诉它,你可以使用属性文件 - 请参阅手册页)。

在检查了文件内容后,它发现了一些不是基本 ascii 字符的内容。作为 UTF16,我希望它会有“有趣”的字符,所以它认为它是二进制的。

如果您的文件具有国际化(i18n)或扩展字符格式,有多种方法可以告诉 git。我对设置它的确切方法还不够了解-您可能需要 RT[Full]M ;-)

编辑:快速搜索 SO 发现can-i-make-git-recognize-a-utf-16-file-as- text应该给你一些线索。

解决方法

我想知道为什么git告诉我这个?

$ git diff MyFile.txt
diff --git a/MyFile.txt b/MyFile.txt
index d41a4f3..15dcfa2 100644
Binary files a/MyFile.txt and b/MyFile.txt differ

它们不是文本文件吗?

我检查了.gitattributes它,它是空的。为什么我收到这条消息?,我不能再像以前那样得到差异了

添加 :

我注意到@文件中有一个权限,这是什么?,这可能是原因吗?

$ls -all
drwxr-xr-x   5 nacho4d  staff    170 28 Jul 17:07 .
drwxr-xr-x  16 nacho4d  staff    544 28 Jul 16:39 ..
-rw-r--r--@  1 nacho4d  staff   6148 28 Jul 16:15 .DS_Store
-rw-r--r--@  1 nacho4d  staff    746 28 Jul 17:07 MyFile.txt
-rw-r--r--   1 nacho4d  staff  22538  5 Apr 16:18 OtherFile.txt