我想知道为什么 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
最佳答案
这只是意味着当 git 检查文件的实际内容时(它不知道任何给定的扩展名不是二进制文件 - 如果你想告诉你可以使用属性文件它明确 - 请参阅手册页)。
检查了文件的内容后,它发现了不是基本 ascii 字符的内容。作为 UTF16,我希望它会有“有趣”的字符,所以它认为它是二进制的。
如果文件有国际化 (i18n) 或扩展字符格式,有一些方法可以告诉 git。我对设置它的确切方法还不够了解 - 您可能需要 RT[Full]M ;-)
编辑:快速搜索 SO 发现 can-i-make-git-recognize-a-utf-16-file-as-text这应该给你一些线索。
关于git - 为什么 Git 将此文本文件视为二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6855712/