错误背景

开发时,忽然发现自己的一个文件无法查看git的diff了,并且多了一个提示:
类似于这种(借用下网上的代码块,我的比这个还严重,我的js文件看不了diff了):

$ 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

解决步骤1:检查有无特殊字符

要确保新增加的代码里没有特殊字符,我的情况就是因为增加了一个特殊字符,导致git认为这个代码文件是个二进制文件

解决步骤2:告诉git这是个文本文件

在项目的根目录处,创建一个文件,命名为.gitattributes,手动给文件设置diff属性,这是个例子:

src/Acme/DemoBundle/Resources/public/js/i18n/* diff
doc/Help/NothingToSay.yml                      diff
*.css                                          diff

如果要检查文件上是否设置了属性,可以在 git check-attr 的帮助下执行此操作

git check-attr --all -- src/my_file.txt
解决步骤2参转载自:https://www.it-swarm.dev/zh/git/%E4%B8%BA%E4%BB%80%E4%B9%88git%E5%B0%86%E6%AD%A4%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%E8%A7%86%E4%B8%BA%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%EF%BC%9F/940576972/

原因:
如果你没有设置文件的类型,Git会尝试自动确定文件的类型,并且将一个包含很长的行、或者宽字符 (例如Unicode)的文件视为二进制文件。
通过使用 .gitattributes 文件,你可以告诉Git这个文件的类型。
手动给文件、文件路径设置 diff 属性可让Git将文件内容解释为文本并执行常规差异。

解决步骤3:git回退版本

备份自己的代码到别的地方,然后git还原到上一个没出错的版本,直接重来。
有时候最暴力的方法反而是最快的

解决 git 将文本文件视为二进制文件 导致无法查看diff相关推荐

  1. 解决git切换分支导致代码丢失的问题

    解决git切换分支导致代码丢失的问题 问题背景: ​ 因为本人手里有好几个不同的项目,当手里有正在做的项目,却被临时叫去修改另外一个项目,而此时又不想把现有的代码提交,于是就强制切换到了另外一个分支上 ...

  2. C语言基础14——文件操作。文本文件或二进制文件读写。通讯录的改造。文件缓冲区讲解

    目录 为什么使用文件? 什么是文件? 文件的打开和关闭 文件指针 文件的打开和关闭 文件的打开方式 流 重定义文件 文件流 文件的顺序读写 以字符形式读写文本文件 fputc()函数 fgetc()函 ...

  3. 如何解决Git中的合并冲突

    如何解决Git中的合并冲突? #1楼 对于想要半手动解决合并冲突的Emacs用户: git diff --name-status --diff-filter=U 显示所有需要解决冲突的文件. 依次打开 ...

  4. c语言实现指定路径文件读取_C语言实现文件复制功能(包括文本文件和二进制文件)...

    文件的复制是常用的功能,要求写一段代码,让用户输入要复制的文件以及新建的文件,然后对文件进行复制.能够复制的文件包括文本文件和二进制文件,你可以复制1G的电影,也可以复制1Byte的txt文档.实现文 ...

  5. 解决git下载出现:Failed to connect to 127.0.0.1 port 1080: Connection refused拒绝连接错误

    解决git下载出现:Failed to connect to 127.0.0.1 port 1080: Connection refused拒绝连接错误 文章目录: 一.git拒绝连接原因分析 二.错 ...

  6. 计算机史话 —— 回车和换行 与 文本文件和二进制文件

    回车:carriage return 换行:line feed 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打 10 个字符.但是它有一个问题, ...

  7. 【VS问题已解决】警告被视为错误 - 没有生成“object”文件

    [VS问题已解决]警告被视为错误 - 没有生成"object"文件 目前遇到这个问题主要是因为代码存在不明显的语法错误.在VS生成解决方案的编译阶段之前会检查有没有明显的语法问题. ...

  8. 解决git push 中remote: Permission to xxxxx.git denied to xxx. fatal: unable to acce

    解决git push 中remote: Permission to xxxxx.git denied to xxx. fatal: unable to acce 解决方案一 解决方案二 解决方案一 第 ...

  9. 第十一章 文件操作_C语言实现文件复制功能(包括文本文件和二进制文件)

    文件的复制是常用的功能,要求写一段代码,让用户输入要复制的文件以及新建的文件,然后对文件进行复制.能够复制的文件包括文本文件和二进制文件,你可以复制1G的电影,也可以复制1Byte的txt文档. 实现 ...

最新文章

  1. win 开机 Microsoft corparation 滚动栏
  2. dede/archives_do.php,dedecms后台编辑文章时archives_do.php显示空白解决办法
  3. 每日一皮:前程序员离职后没人想接的代码...
  4. python中处理日期和时间的标准模块是-Python time模块参考手册
  5. 金山WPS发布了Linux WPS Office
  6. Github 的清点对象算法
  7. java 8 两个list_java集合框架综述
  8. 苹果新隐私政策在iOS14.4测试版上线:能允许或拒绝“跟踪”
  9. git commit报错(husky > commit-msg hook failed)
  10. VMware Linux VDI 安装步骤
  11. 免费域名 空间 cdn
  12. python中能用π吗_python里π
  13. 【Hadoop笔记_3】MapReduce、案例分析、实例分析代码
  14. php爬虫框架使用案例QueryList,将数据爬到mysql数据库
  15. U盘不能复制超过4G的文件解决方法
  16. java流量监控系统demo_搭建一个简单的基于web的网络流量监控可视化系统
  17. mongo配置项说明
  18. 如何区分独立服务器与VPS主机?
  19. COGS 2211. [BZOJ3653]谈笑风生
  20. JavaScript实现爆炸碎片的 图片切换 效果

热门文章

  1. 计算机多媒体论文致谢,这篇博士论文《致谢》刷屏,句句扎心……
  2. 积分换元法中换元单调性问题的讨论
  3. 什么是MTTF、MTBF、MTTR?
  4. android airplay音乐播放器,您需要知道的关于使用AirPlay播放音乐的一切 | MOS86
  5. modelsim is exiting with code:211 10秒后自动关闭退出
  6. JVM-04-运行时数据区-堆,方法区
  7. spss 通径分析_使用SPSS线性回归实现通径分析的方法-学习资料.pdf
  8. python 报错'tuple' object does not support item assignment
  9. 常用工具(一)——安卓手机app抓包burpsuite
  10. 安装python包的时候文件夹权限报错:InvalidArchiveError(“Error with archive D:\\anaconda\\pkgs\\cudnn-8.4.1.50-h)